2017-08-10 13 views
1

socket.io-clientメッセージがsocket.ioサーバーによって確実に受信される方法はありますか?そこにはsocket.ioで利用可能な承認メカニズムがあります。確認応答が受信されない場合(この周りに標準パターンがあるかどうか)、またはソケットが指定された時間内に確認応答を受信しなかった場合、socket.io-clientがメッセージの送信を再試行するかどうかを再試行できますか?socket.io-clientメッセージがsocket.ioサーバーによって確実に受信されていることを確認する方法はありますか?

私のアプリケーションは、2gセルネットワーク上でsocket.io-clientを使用しています。メッセージが問題なくサーバーに到達した時間の98%。他の2%のメッセージは、私が知ることができるものからセルラーネットワークの問題のために失われます。

ソケット接続があると主張し、データは送信されますが、サーバー側は決してそれを取得しません。クライアントのメッセージがサーバーに届いていることを確認するための確実な方法があるかどうかを知りたい。私のクライアントのそれぞれはすでにIDを持っていますが、メッセージがそこに届いていると仮定することはできません。

特定の時間枠で確認が行われていない場合、同じメッセージを再送信する方法の例があります。私は同じメッセージが再び伝わるかどうか気にしない。それは望ましくないが、私にはそれほど重要ではない。

答えて

0

最も柔軟な方法は、独自の承認メカニズムを構築することです。タイムアウトを使用している場合は、おそらくメッセージが失われて最終的に到着する可能性があるため、重複メッセージから保護する必要があります。

代わりに、単純なAJAXによってメッセージが確実に配信され、WebSocketよりも信頼性が高くなります。しかし、既存のシステムを再構築し、それが価値があるかどうかを自分で判断する必要があるかもしれません。

+0

私はこれを見つけました:[Websocket転送の信頼性(再接続中のSocket.ioデータの損失)](https://stackoverflow.com/questions/20685208/websocket-transport-reliability-socket-io-data-loss-during-再接続) – r0w

+0

更新:MQTTを使用した、より信頼性の高いソリューションの発見 – r0w

関連する問題