我有一个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)
我似乎无法找到有关为何发生这种情况的任何文件。其他人都看到了吗?
规格:
> Windows Environment
> node version: 0.12.4
> socket.io version: 1.3.6
答案 0 :(得分:4)
由于socket
不是net.Socket
,因此它是socket.io Socket
。您会注意到socket.io setNoDelay
上没有Socket
方法。
socket.io websocket sever automatically disables Nagle on the underlying TCP socket。