私はリアルタイムゲームをプレイできないようにするsocket.ioに大きな問題があります。 200msの -ゲームnode.jsとsocket.io(リアルタイム)の大きな遅れ
は私が(各ソケット)
私のNode.jsサーバーが接続されたすべてのクライアントにデータを20msごとを送りたい。しかし、私は、クライアントが20msごとに受信していないことがわかり、それは時間ごとに100に複数の受信しますもっと。ゲームを完全に再生できないようにします(非常に大きな遅れ)
ローカルでは非常にうまく動作します。
お願いします。いくつかのネットワークのボトルネックがあるので、この問題が発生した
function sendData()
{
playersList.forEach((player) =>
{
let data = [];
// code which add data to "data" variable
socketsList[player.id].emit('refreshGame', JSON.stringify(data));
});
setTimeout(sendData, 20);
}
sendData();
私の経験は、コードの複雑さと最適化、noOfPlayersとサーバーの仕様に依存しています。最初にまず冗長性を取り除き、メモリをフラッシュするなど、コードを軽量化してみてください。 – wrangler
関数 'sendData()'に 'emit( 'refreshGame'、 '');を使ってデータを作るコードをすべて削除しても同じです。 'クライアント側でキャンバスをリロードするコードを削除した場合(ちょうど' socket.on( 'refreshGame'、console.log( 'new Date()。getTime()); – Skysork