正在禁用socket.io的jsonpolling

Disabling jsonpolling for socket.io?

本文关键字:io jsonpolling socket      更新时间:2023-09-26

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

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

我把它放进了"sockets.on"("connection"…),所以它看起来像这样:

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似乎仍然很活跃,因为它仍然扰乱了我的服务器!我能做些什么来防止这种情况发生?

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

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

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

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