30

Jetty Websocket サーブレットを実装しています。サーバーが新しい接続を受信したときに、websocket の onopen 関数によって読み取られるメッセージを送信したいと考えています。このメッセージは、開いているときにのみ送信され、通常の connection.SendMessage() 関数は使用されません。それは可能ですか?そしてどうやって?

4

2 に答える 2

61

クエリ文字列を忘れないでください。WebSocket url で有効です。

new Websocket('ws://yoursite.com/path?a=1&b=2&c=3')

次に、サーバー側でこの URL を簡単に解析して、データを取得できます。

于 2015-02-14T13:58:27.077 に答える
19

プロトコルではこれをサポートしていませんが、自分で何かをごまかすことができます。

  • サーバーがハンドシェイクを完了したら、クライアントに配信する最初のメッセージを保存します。
  • クライアントのonopen関数で、「初期メッセージの読み取り」リクエストを送信します。
  • サーバーで、このクライアントが最初のメッセージを読んでいないことを確認してください。メッセージで応答します。最初のメッセージが送信されたことを示すフラグを設定します。
  • クライアントとサーバーの両方が自由に他のメッセージを送信できるようになりました。
于 2012-08-30T08:17:49.820 に答える