17

Socket.IOには、クライアントがイベントを順番に受信することを保証する、ある種の順序付けメカニズムがありますか?

例:サーバーがクライアントAにイベントを発行し、サーバーがすべてのクライアントにEvt1ブロードキャストする場合。Evt2したがって、クライアントAは、その順序でのみ受信Evt1Evt2ます。

私の推測ではNOです。もしそうなら、どのように実装しますか、それとも既存のソリューションがありますか?

4

2 に答える 2

44

以前の回答は誤解を招く可能性があるため、1つのことを明確にすることが重要だと思います。

Socket.ioをWebSocketで使用すると、パケットの順序が維持されることが保証されます。

これは古い投稿ですが、 WebSocket を介したSocket.ioは、実際にはイベントの順序が維持されることを保証していることに注意してください。これは、WebSocketとHTTPの基盤となるテクノロジーであるTCP自体が、パケットの順序を維持することを保証しているためです。ただし、Socket.ioは、順序を保証しない他のいくつかのプロトコルもサポートしています。

この問題についていくつかの質問が投稿されており、この事実を裏付けています。

于 2017-01-13T18:47:24.100 に答える
-2

いいえ、必要な場合は、アプリケーションレベルで行う必要があります。インターネットは、2つの異なるパケットが同じルートを取ることを保証しないため、タイミングが異なる可能性があります。たぶん、各メッセージにタイムスタンプを追加して、そのタイムスタンプで並べ替えて整理できるようにします。

于 2013-03-14T20:33:55.003 に答える