gpt4 book ai didi

node.js - 过多的 EIO socket.io 轮询调用会减慢网页速度

转载 作者:太空宇宙 更新时间:2023-11-04 02:46:29 25 4
gpt4 key购买 nike

我的应用程序基于 Socket.io,具有聊天功能。

我的应用程序部署在红帽开放类次上。

我不断收到http://url/socket.io/?EIO=3&transport=polling&t=Lj8huKr&sid=y1OB9OBmdSd_Ma4nAAFG请求数量巨大。

而且他们可能还会阻止我的网页加载,从而减慢我的网页速度。

我在互联网上读到,如果未提及端口,则会出现此错误。但我的端口号是red hat open shift配置页面来的。

下面是如何在我的初始 html 页面(node js 初始服务器页面)中初始化 socket.io 的代码

index.html

var socket =io();

index.js( Node 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);
});

最佳答案

在 socket.io-client v1.x 中,初始连接将以轮询 方式启动,因此您始终会看到至少一些对 http://site.url/socket.io/?EIO=3&transport=polling URL 的请求。

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

v2.x+ 客户端首先转向使用 websocket,但如果 websocket 连接失败,将回退到相同的长轮询 URL。

关于node.js - 过多的 EIO socket.io 轮询调用会减慢网页速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43280046/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com