首页 文章

太多EIO socket.io轮询调用会减慢网页速度

提问于
浏览
1

我的应用程序基于Socket.io来实现聊天功能 .

我的应用程序部署在red hat open shift上 .

我一直在收到数量巨大的请求 .

他们可能也阻止加载我的网页,这会减慢我的网页速度 .

我在互联网上读到,如果没有提到端口,则会出现此错误 . 但我的端口号是红帽开放配置页面 .

下面是socket.io如何在我的初始html页面初始化节点js初始服务器页面的代码

的index.html

var socket =io();

index.js(节点js服务器)

var app = express();
var server = app.listen(process.env.NODE_PORT || 3006, process.env.NODE_IP || 'localhost', function(){
    console.log('listening on port 3006');
});

var io = require('socket.io').listen(server);

io.on('connection', function(socket) {
    console.log('a user connected');
    socket.on('disconnect', function() {
        console.log('user disconnected');
    });
    socket.on('chat message', function(msg) {
        console.log(msg);
        io.emit('chat message', msg);
    });

1 回答

  • -1

    XHR长轮询是socket.io客户端的默认连接类型 . 初始连接将以 polling 开头,因此您将始终至少看到对 http://url/socket.io/?EIO=3&transport=polling url的一些请求 .

    然后,客户端将尝试升级到websocket连接 . 那些无法升级的客户将继续定期轮询以尽可能接近实时 . 如果您有大量客户端每2秒轮询一次,那么您将看到很多请求 .

相关问题