为什么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 。