2016-04-03 17 views
0

イベントマシンとRubyの使用。現在、私は、他のユーザーがいるかどうかを確認するターンの最後にゲームを作っています。 ws.send()を使用してユーザーにデータを送信する場合、ユーザーが実際にデータを取得したかどうか、または別の解決方法はどうすれば確認できますか?Ruby websocketユーザが存在するかどうかチェック

+0

通常、リモコンが動作中であり、詰まっていないことを確認するには、ソケットにpingを戻す必要があります。 – tadman

+0

pingは応答が発生したかどうかを確認するコールバックを持っていますか?真実か偽か? – ninetailschris

答えて

2

ライブラリでは、基本となるプロトコル要素へのアクセスが提供されないため、アプリケーションプロトコルに要素を追加する必要があります。典型的なアプローチは、各メッセージに識別子を追加し、それらの識別子を含む確認応答メッセージでメッセージに応答することです。

このようなアプローチは、クライアントが何を受け取ったかをよりよく理解するのに役立ちます。エラーの場合、特定の状態の保証はありません。クライアントがACKを送信したが、サービスがそれを受信しなかった後に、接続を失う例があります。

今まで説明した複雑さの結果、システムに損害を与えずに再生でき、エラー状態の間、または後で容易に再生できるように、多くの操作を偶発的にしようとする方が簡単です。また、関連する状態を完全に定期的に同期させる方法を見つけることもできます。これにより、データや接続の損失によって引き起こされる軽微なエラーの長期的な継続を避けることができます。

+0

親指をあげてください。私は自分の問題に対する答えを見つけました。socket.stateを使用して、ソケットが閉じられているか開いているかどうかを調べ、その応答に基づいて動作しました。 – ninetailschris

関連する問題