2

ここでの私の無知や用語の誤りをお許しください。私はソフトウェア会社で働いていますが、開発ではなくサポートを担当しています。

Websocket サーバーに接続してメッセージを送受信するツールを開発しました。メッセージを受信する場合は、接続を開き、サーバーが接続を閉じるまでメッセージを受信します (さらに処理するためにメッセージを他のコンポーネントに渡します)。

簡単な Websocket サーバー (ws://echo.websocket.org:80) に対してテストを行い、ツールを使用してメッセージをサーバーに ping し、それを受信しました。しかし、サーバーは接続を閉じず、ツールはリッスンし続けましたが、停止することが予想されていました。

X メッセージの受信後、または Y 時間後にクライアントが接続を閉じる設定を追加することを開発チームに提案しましたが、これが現実的かどうかについて彼らは疑問を呈しました。

では、Websocket クライアントが接続を閉じることができるようにすることは意図されているのでしょうか?開発の観点からは悪い習慣なのでしょうか? クライアントは、メッセージが完了したかどうかさえわかりますか? また、クライアントが接続を閉じることができる場合、どのようなシナリオでこれが必要になるでしょうか?

4

1 に答える 1

2

それで、Websocketクライアントが接続を閉じることができるようにすることを意図していますか

WebSocketAPI には関数が含まれていますclose。これは、クライアントがサーバーへの接続を閉じることができるようにするためのものです。

開発の観点からは悪い習慣ですか?また、クライアントが接続を閉じることができる場合、どのようなシナリオでこれが必要になるでしょうか?

それは本当にアプリケーションに依存します。ただし、上記のように、これは WebSocket API の一部であるため、そうすることは完全に有効です。

クライアントは、メッセージが完了したかどうかさえわかりますか?

WebSocket.onmessageメッセージを受信したときに呼び出されます。メッセージ全体が実際に受信されたかどうかは、アプリケーションの観点によって異なります。サーバーが完全なメッセージを一度に送信する場合、完全なメッセージが受信される可能性が非常に高くなります。正確な詳細については、 WebSocket プロトコルのドキュメントを参照してください。

于 2013-10-10T20:17:46.867 に答える