node.jsをsocket.ioと一緒に使用してWebSocketサーバーを作成する前に、jettyを使用したWebSocketを初めて使用します。しかし、要件が異なるため、Java WebSocketServlet/WebSocket を使用する必要があり、これまでのところ maven、jetty、および jetty-websocket プラグインを使用してうまくいっていました。私の問題は、java ソリューションの socket.io の socket.on(event, fn) 実装に匹敵するものが見つからないことです。「new」、「addthis」、「jointhat」など、クライアントから発生したさまざまなイベントに反応する同じ可能性を持ちたいと思います...いくつかのデータをjsonまたは本体のPOSTパラメーターとして送信します。socket.ioと同じことができる可能性またはWebSocket実装はありますか? サーバー側でイベント処理を実装できるこの「チャネル」を実行しますか?
2 に答える
WebSocket 仕様にはカスタム イベントはなく、socket.io はカスタム イベントをサポートする独自のプロトコルに従うだけです - https://github.com/LearnBoost/socket.io-spec
私の知る限り、カスタム イベント リスニングをサポートする Java 実装はありません。
ただし、Atmosphere では、socket.io クライアントを Java Web サーバーで使用できますが、テストしていません。https://github.com/Atmosphere/atmosphere/wiki/Getting-Started-with-Socket.IO
Jetty の WebSocketServlet を直接制御したい場合は、クライアント側で jQuery Socket などの他のライブラリを使用することをお勧めします。- https://github.com/flowersinthesand/jquery-socket/tree/master/samples/jetty-ws
Jetty の websocket 実装は、websocket の基本的な処理のみに関係しています。
- バイナリ メッセージ (断片化あり)
- テキスト メッセージ (断片化あり)
- 卓球
- 近い
WAMP (websocket アプリケーション メッセージング プロトコル)など、さまざまな新しい websocket サブプロトコル (奇数名) のサポートについて簡単な議論がありました。しかし、それらは基本的な websocket レイヤーの上に構築されるだけです。
もう 1 つの選択肢は、 CometDのようなフル チャネル APIを使用して、古い通信形式にフォールバックせずに websocket を使用するように構成することです。