0

HTML5ゲームを開始しようとしています。Javaスクリプトに重いロジックがあります。サーバー側でロジックを保持したいので、ゲームがサーバーでのみプレイされることを保証します。

node.jsを選択することにしました。非常に高速であるため、次の2つの方法を考えました。

  1. AJAXを使用するために、クライアント側はサーバー側のメソッドを呼び出します。このメソッドは計算された数値を返し、ゲームシーンを更新します。この呼び出しは、2秒ごとに呼び出されます。

  2. node.jsを使用してソケットを開くと、クライアントは毎回サーバーを呼び出す必要がなくなり、代わりに、開いたソケットからストリーミングされたデータをリッスンし続けます。これにより、x秒ごとにデータが更新されます。

計算されたデータは大きくなく、1秒あたり約0.5 kbです。クライアントはサーバーにステータスを通知する必要があるため、クライアントから送信されるデータは約0.1 kb / x秒であり、ゲームのプレイによって異なります。

2番目のアプローチの方が優れているようですが、同時プレイヤーを処理するには数百のポートが必要になります。

では、パフォーマンスと使用帯域幅の最小化の観点から、どちらを選択するのでしょうか。または、さらに良い方法はありますか?誰かが助けることができますか?

4

1 に答える 1

0

あなたが言ったように、サーバーに定期的に情報を送信したり、サーバーから更新を取得したりするWebベースのJavaScriptアプリケーションを作成しているので、私の意見では、WebSocket(特にHTML5で開発している)を使用する必要があります。これにより、アプリケーションの帯域幅が削減されます。を使用します。

パフォーマンスの観点からも、WebSocketを選択しました。たとえば、一度に100リクエストのラウンドトリップ時間を平均すると、WebSocketのラウンドトリップ時間は短くなります。結果を示す可能性のあるパフォーマンステストのリンクは次のとおりです。http://www.peterbe.com/plog/are-websockets-faster-than-ajax

于 2013-02-28T20:45:12.423 に答える