为什么socket.setNoDelay()抛出一个错误?

我有一个nodejs服务器使用socketio实时通信。

var app = require('http').createServer(handler) , io = require('socket.io')().listen(app) function init() { app.listen(process.env.PORT || 8888); }; io.sockets.on('connection', function (socket) { socket.setNoDelay(true); onSocketConnection(socket); }); 

问题是,我每次调用socket.setNoDelay(true); 它正在踢回:

 E:[path]\server.js:58 socket.setNoDelay(true); ^ TypeError: undefined is not a function at Namespace.<anonymous> (E:\[path]\server.js:58:12) at Namespace.emit (events.js:107:17) at Namespace.emit (E:\path]\node_modules\socket.io\lib\namespace.js:205:10) at E:\[path]\node_modules\socket.io\lib\namespace.js:172:14 at process._tickCallback (node.js:355:11) 

我似乎无法find任何文件为什么发生这种情况。 其他人看到这个?

眼镜:

 > Windows Environment > node version: 0.12.4 > socket.io version: 1.3.6 

因为socket不是一个net.Socket ,它是一个socket.io Socket 。 你会注意到在socket.io Socket上没有setNoDelay方法。

socket.io websocket服务器自动禁用底层TCP套接字上的Nagle 。