0

https://blog.openshift.com/how-to-build-java-websocket-applications-using-the-jsr-に従って、Tyrus 1.8.3 と javax.websocket API を使用して単純な websocket の例を実行しようとしています。 356-api/を目安に。

アノテーションを使用して、単純なサーバー エンドポイントと、@OnOpen アノテーションが正しく付けられたメソッドをトリガーするクライアント エンドポイントを作成しました。ただし、クライアントからメッセージを送信すると、サーバー側で @OnMessage を使用したメソッドがトリガーされません。

興味深いことに、onOpen で作成されるセッション ID は、クライアントとサーバーで異なります。理由がわかりませんが、これが問題に関係していると思いますか? セッション ID が同じでない場合 - セッションは 1 つしかありません...

同じサーバー エンドポイントに接続するための単純な Javascript クライアントも作成しましたが、これも @OnMessage メソッドをトリガーしないため、サーバー側に問題があると思われます。

INFO レベルでは何も報告されないため、ログ レベルを FINE に上げました。ログから、websocket のアップグレードが成功し、接続が正常に開かれているように見えます。クライアントとサーバーの両方でAjavax.naming.NoInitialContextExceptionがスローされますが、これが関連しているかどうかはわかりません...

すべてのコードをこちらの github にアップロードしました: https://github.com/stephenhartley/websocket-demo
ログ ファイルは、logs フォルダーで表示できます。

この問題の原因を追跡する方法を教えてもらえますか?

どうもありがとう!

4

0 に答える 0