为socket.io禁用jsonpolling?

时间:2012-07-12 11:50:48

标签: javascript node.js socket.io

由于jsonpolling搞砸了我的服务器,我想禁用它。 我在互联网上找到了这样的代码:

socket.set('transports', [ 'websocket', 'htmlfile', 'xhr-polling' ])

我把它放入“sockets.on(”连接“......”所以它看起来像这样:

io.sockets.on('connection', function(socket) {
    socket.set('transports', [ 'websocket', 'htmlfile', 'xhr-polling' ],function(){
        ....code that I had directly in io.sockets.on("connection"...
    });
});

然而,jsonpolling似乎仍然活跃,因为它仍然会弄乱我的服务器! 我该怎么做才能防止这种情况发生?

1 个答案:

答案 0 :(得分:7)

使用listen初始化socket.io时,可以使用配置选项指定对象:

var io = require('socket.io').listen(80, {
    transports: [...]
});

如果您需要在加载时间后更改它,可以使用io.set('transports', [...])

这会影响所有套接字,因此您只需要调用一次,而不是为您创建的每个套接字调用。