0
我使用Socket.io在手机和网页之间进行一些通信,并且我遇到了服务器不断丢失连接的问题。我看到很多其他人发布了关于Socket.io的连接,其中的连接在空闲大约5分钟左右后下降,但是这是一种连接,具有不断的信息来回发送,而且我已经能够保持连接约30秒。使用Socket.io,连接不断下降
服务器端代码我跑的是:
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
io.on('connection', function(socket){
socket.on('create', function (room) {
socket.join(room);
});
socket.on('player-move', function(msg){
roomId = msg['room'];
move = msg['action'];
socket.broadcast.to(roomId).emit('player-move', move);
});
socket.on('disconnect', function() {
console.log('someone has disconnected');
});
});
http.listen(443, function(){
console.log('listening on *:443');
});
的客户端是非常基本的发出事件。这里有一个例子:
$("#arrow-left").on("touchstart", function(){
var senddata = { "room": roomId, "action": "d-l" };
socket.emit("player-move", senddata);
});
一切似乎都运行良好,直到一切开始后5-30秒,然后连接刚刚下降。连接通常会再次启动,但5-10秒后。有没有人有类似的问题发生?这可能是服务器而不是代码的问题吗?我之前在使用Socket.io的不同服务器上做过类似的事情,并没有遇到这种连接问题。任何帮助或方向进去,将不胜感激。谢谢!
你的服务器的'var'声明在哪里? 'roomId =','move ='会在全局范围内以非严格模式定义这些变量,并且会严格地以严格模式崩溃你的服务器。客户在哪里获得'roomId'?如果它是未定义的,也可能会导致服务器崩溃,因为你基本上是在告诉服务器运行'socket.broadcast.to(undefined).emit(...);' –
客户端和服务器之间是否有任何基础架构可能会计时out socket?你确定你的服务器不断运行,而不是重新启动吗? – jfriend00
你确定他们正在断开吗?连接也可能回退到长轮询,而不是持续连接,这可能由于各种原因而发生,并且可能看起来像没有连接。 – pay