我正在使用node.js和socket.io来构建一个游戏。
我有以下代码。这个游戏很简单。一旦连接到服务器,它就开始做一些动画并保持动画状态。
如果因为网络连接中断或服务器失去连接,我希望游戏能够优雅地失败,并在连接恢复后重新开始。
animate函数从服务器获取内容。如果没有连接,它将无法正常工作。我希望只有在连接时才执行animate函数。
因此,我引入了一个名为connected的变量,它应该保存连接的状态。如果connected=false,则停止动画。
但现在问题是,socket.io本身会尝试重新连接几次。在重新连接过程中如何将connected设置为false?
Game.js
我有以下代码。这个游戏很简单。一旦连接到服务器,它就开始做一些动画并保持动画状态。
如果因为网络连接中断或服务器失去连接,我希望游戏能够优雅地失败,并在连接恢复后重新开始。
animate函数从服务器获取内容。如果没有连接,它将无法正常工作。我希望只有在连接时才执行animate函数。
因此,我引入了一个名为connected的变量,它应该保存连接的状态。如果connected=false,则停止动画。
但现在问题是,socket.io本身会尝试重新连接几次。在重新连接过程中如何将connected设置为false?
Game.js
var connected = false;
$(document).ready(function(){
//connect to socket server
socket = io.connect('/gameserver');
socket.on('connect', function() {
connected = true;
animate();
});
socket.on('disconnect', function() {
connected = false;
socket.connect();
});
});
function animate()
{
....
......
........
if (( connected ) && (..... )) animate();
}