当服务器打开套接字连接时,它会充满来自客户端的消息

时间:2016-03-28 21:12:06

标签: socket.io

我启动服务器和客户端。 然后我关闭服务器,几分钟后重新打开它。 我收到太多消息(来自客户端)。 如何重置它,开始清洁。

服务器代码:

var io = require('socket.io').listen(3001);
var games=[];
	
console.log('start1 server.js');

setTimeout(clear_games,30000);

io.sockets.on('connection', function(socket)
{	 

2 个答案:

答案 0 :(得分:1)

当您的活动socket.io客户端失去与服务器的连接时,他们将不断尝试重新连接,直到您的服务器重新联机并成功重新连接。这是正常和预期的行为,并且通常是非常有用的功能,因为客户端将在临时服务器重新启动或中断网络连接后自动重新建立连接。

如果您只是想重新开始测试,请关闭所有客户端网页,关闭服务器,然后重新启动服务器,然后再次打开客户端网页。因为启动服务器时客户端网页不会打开,所以不应立即重新连接。

如果您从不希望客户端自动重新连接,那么您可以在客户端代码中使用{reconnection: false}选项连接到服务器的选项中指定(虽然这通常是一个坏主意,因为现在如果连接暂时中断,客户端将不会自动恢复。)

答案 1 :(得分:-1)

我做的是: 在客户端,我添加了一个每秒调用的监视器函数(setTimeout),并检查socket.connected。 如果没有连接,我不会向服务器发送任何消息,直到我再次看到它是真的(已连接)。 这解决了这个问题。