最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

socket.io与轮询,常量连接断开有关

运维笔记admin12浏览0评论

socket.io与轮询,常量连接/断开有关

socket.io与轮询,常量连接/断开有关

所以这是一个更大的应用程序的一部分,我试图使用集群和socket.io-redis运行,因此如果我需要在未来进行扩展,它将适用于多个节点和机器。

我似乎遇到了一些客户无法维持连接的严重问题。一些客户持续这样做(主要是iOS设备,我认为必须使用轮询传输),但其他客户端有时会工作,有时候不会(这也是我使用轮询的原因)。

我剥离了一切,结果发现群集不是问题。

无论如何我的server.js

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);

var port = process.env.PORT || 3800;

/* -------------------------------- */

io.on('connection', function(socket){
    var datetime = new Date().toLocaleString();
    console.log(datetime+' - '+'a user connected - '+socket.id);
});

/* -------------------------------- */


http.listen(port, function() {
    var datetime = new Date().toLocaleString();
    console.log(datetime+' - '+'listening on *:' + port);
});

并在控制台中输出

Wed Mar 11 2015 16:22:53 GMT+0000 (GMT) - listening on *:3800
Wed Mar 11 2015 16:22:54 GMT+0000 (GMT) - a user connected - YrLUOrgfpnQVwoWMAAAA
Wed Mar 11 2015 16:22:58 GMT+0000 (GMT) - a user connected - nH6x-97uf3iR2LgNAAAB
Wed Mar 11 2015 16:23:01 GMT+0000 (GMT) - a user connected - VsrFO31elPyKfQJcAAAC
Wed Mar 11 2015 16:23:08 GMT+0000 (GMT) - a user connected - 7xuKZ6aykYIDcxN-AAAD
Wed Mar 11 2015 16:23:15 GMT+0000 (GMT) - a user connected - ZsmZtFHmLrH1DxXWAAAE
Wed Mar 11 2015 16:23:22 GMT+0000 (GMT) - a user connected - HFUApMwwFZallJnQAAAF

这只是无限期地继续下去。我正在用iPad测试它,客户端从appgyver超音速应用程序(cordova和javascript)加载。

我在使用socket.io聊天示例的分支时遇到了同样的问题,修改了集群使用--

我的问题:为什么有些客户无法保留连接?如何使用轮询传输修复这些问题而不维护单个会话?

回答如下:

这可能是由于node.js的单线程架构。

看看这里的答案:https://stackoverflow/a/51524799/996926

发布评论

评论列表(0)

  1. 暂无评论