JSON データをクライアントに送信するために WebSocket を使用する必要がありますか? (これは小さなセッションの説明です)
現在、クライアント側のコードは、XHR を介して Node.js サーバーにセッションの説明を送信します。受信後、ノード サーバーはこれを「部屋」にいる他のクライアントに送信する必要があります。
socket.io を使用してこれを実現できますが、たとえば XHR のように、もう少し高速で安全なものを実行することは可能ですか?
JSON データをクライアントに送信するために WebSocket を使用する必要がありますか? (これは小さなセッションの説明です)
現在、クライアント側のコードは、XHR を介して Node.js サーバーにセッションの説明を送信します。受信後、ノード サーバーはこれを「部屋」にいる他のクライアントに送信する必要があります。
socket.io を使用してこれを実現できますが、たとえば XHR のように、もう少し高速で安全なものを実行することは可能ですか?
反対側からのオファーだけを受け取りたい場合は、HTML5 Server Sent Events を試すことをお勧めします。
ただし、これはブラウザーのサポートが異なるために問題を引き起こす可能性があるため、単純なロング プーリング リクエストを使用します。SDP オファーを取得するだけなので、実装は非常に簡単です。
いいえ、WebSocket API を使用してサーバー経由でクライアントからクライアントに JSON データを送信する必要はありませんが、Google 独自の App Engine Channel API を使用しない限り、WebSocket API がおそらく最良の選択です。
また、セッションの説明だけでなく、候補者情報 (複数回) や、セッションの開始/終了などに必要なその他の任意のデータも送信していることに注意してください。
私の知る限り、WebSocket API はシグナル伝達の最速のソリューション (XHR よりも高速) です。これは、複数の HTTP リクエストに関連するすべてのオーバーヘッドが最初のハンドシェイク後に存在しないためです。
自分でコーディングしたい場合は、最新のWebSocket ドラフトを読み、WebSocket サーバー側スクリプトを自分でコーディングする方法を学び始めます。そうしないと、Socket.IO などの WebSocket ライブラリや独自のソリューションに頼らざるを得なくなります。 Google の App Engine Channel API のようなものです。
303 HTTP ステータス コードを使用するのはどうですか?
最初のクライアントがセッションの説明をリソース X に送信すると、サーバーは受信を確認し、他のクライアントのセッションの説明を蓄積する新しく作成されたリソース Y を指す 303 ステータス コードで応答します。
最初のクライアントは、リソース X が変更されるまでポーリングします。
2 番目のクライアントはセッションの説明をリソース A に送信し、サーバーは受信を確認してリソース Y を更新します。最初のクライアントは次のポーリングで更新に気づき、2 番目のクライアントのセッション情報を取得します。