ゲームの構築にnode.jsとsocket.ioを使用しています。
私は以下のようなコードを持っています。ゲームはシンプルです。サーバーに接続するとすぐにアニメーションを開始し、アニメーションを続けます。
インターネット接続がダウンしたり、サーバーが切断されたりした場合にゲームが正常に失敗することを確認したいと思います。接続が回復するとゲームが再開します。
animate関数は、サーバーからコンテンツをフェッチします。したがって、接続がない場合は正しく機能しません。接続がある場合にのみアニメーション関数を実行したい。
そこで、接続のステータスを保持することになっている、connectedという変数を導入しました。conncted = falseの場合、アニメーションを停止します。
しかし、今の問題は、socket.io自体が数回再接続を試みることです。再接続プロセス中に、接続を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();
}