Hor*_*rse 5 node.js socket.io cordova steroids
所以这是一个更大的应用程序的一部分,我试图与集群和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);
});
Run Code Online (Sandbox Code Playgroud)
并在控制台输出
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
Run Code Online (Sandbox Code Playgroud)
这会无限期地持续下去。我正在使用 iPad 进行测试,客户端从 appgyver supersonic 应用程序(cordova 和 javascript)中加载。
当使用 socket.io 聊天示例的分支(针对集群使用进行修改)时,我遇到了同样的问题 - https://github.com/evilstudios/chat-example-cluster
我的问题:为什么有些客户端无法保持连接?如何解决轮询传输不维护单个会话的这些问题?
| 归档时间: |
|
| 查看次数: |
1643 次 |
| 最近记录: |