問題タブ [tyrus]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
3742 参照

java - Java EE Websocket API で ping を受信する

私は現在、Java Websocket API の Tyrus 参照実装に取り​​組んでいます。バイナリ メッセージ、テキスト メッセージ、および Pong メッセージを受信するサーバー エンドポイントを正常に作成できましたが、ping メッセージを受信するようにできません。Tyrus のソース コードの多くを検索し、Jave EE Websocket チュートリアルを読みましたが、どちらも ping を受信する機能 (送信のみ) を示していません。これが現在の API では不可能なことかどうかは誰にもわかりませんか? そうでない場合は、ping メッセージを受信するための正しい方向を教えていただけますか?

0 投票する
1 に答える
1265 参照

java - tyrus スタンドアロン クライアントでの SSL ホスト名の検証

tyrus 1.7 スタンドアロン クライアントを使用してリモート Websocket に接続しています。これはサンプルのように行われます: https://tyrus.java.net/documentation/1.7/user-guide.html#websocket-client-endpoint

デフォルトの実装では、SSL 証明書チェーンが有効かどうかのみをチェックしますが、ホスト名が間違っていてもかまいません。これは大きなセキュリティリスクのようです。

HttpsURLConnectionを介して Websocket サーバーへの未加工の HTTPS 接続を (Websocket のアップグレードなしで) テストすると、ホスト名とチェーンの検証が期待どおりに機能します。

tyrus スタンドアロン クライアントで SSL ホスト名検証を有効にする方法はありますか?

0 投票する
0 に答える
234 参照

java - Java Tyrus websocket API の @Endpoint にオブザーバーを追加できますか

@OnMessage などのイベントを他のクラスに通知できるように、@Endpoint にオブザーバーを追加したいと考えています。

@Endpoint でそれを行うことはできますか?

0 投票する
2 に答える
545 参照

java - http 経由で同じホストにファイルをダウンロードすると Websocket がブロックする

Java Play Framework 2.2.1 を実行しているサーバーと、Websocket 経由でサーバーに接続して監視し、http 経由でファイルをダウンロードするクライアント アプリケーションがあります。接続のクライアント側でダウンロードが終了するまで websockets メッセージがブロックする大きなファイルをダウンロードするときに問題があります。クライアント側には、Java JDK8 とウェブソケット用の Tyrus ライブラリが搭載されています。

HTTP と Websockets の間に何らかの優先順位があるかどうかを知っている人はいますか (私が知る限り、Websocket は HTTP パッケージよりも実装されています)。

0 投票する
1 に答える
343 参照

java - Tyrus WebSocket API でのセッション ID

いくつかのイベントのオブザーバーとして機能する websocket サーバーを実装しました。

SomeObserver クラスから objectChanged() を実装しました。objectChanged() は、何らかのイベントが発生したときに実行されます。これは一般的なオブザーバーの実装です。

アプリケーション ロジックは次のようになります。クライアントは Websocket サーバーに接続し、サーバーは適切なクライアントに適切なイベントを送信します。

私は次のようにコーディングしました:

セッション ID を使用したことはありません。しかし驚くべきことに、サーバーはそれぞれのセッションに適切なメッセージを送信します。サーバーは、セッション認証または識別なしで、あるセッション イベントを別のセッションに送信しません。

Tyrus API でなぜ、どのように発生するかを知っている人はいますか? Tyrus webocket がセッション ID をどのようにサポートしているか知りたいです。

0 投票する
0 に答える
1385 参照

java - Glassfish Tyrus ServerEndpoint のインスタンス化の失敗 - エラーを診断するにはどうすればよいですか?

クライアントから接続しようとするとすぐにこのエラーをスローする ServerEndpoint クラスがあります。別の問題かもしれませんが、ある種の依存関係が欠落している、つまり別のjarが欠落しているバンドルされたライブラリであると推測します。

サーバー ログに次のスタック トレースが表示されますが、追加情報はありません。

より関連性の高い情報を入手するにはどうすればよいですか? --debug を使用してサーバーを実行しています。

また、クラスのロードを監視するために、ドメイン構成に以下を追加しました。

冗長性をさらに高めることは可能ですか?

最新の Oracle Java 7 JDK と Tyrus 1.7 を搭載した Linux x64 で GlassFish Server Open Source Edition 4.0 (ビルド 89) を実行しています。

どんなアイデアでも大歓迎です。

エンドポイントはそのコアに取り除かれます。問題を引き起こす可能性のあるものはすべて残そうとしました:

さて、Pavelの助けを借りて動作するようになりました。

  1. Tyrus を WAR に含めないでください。これにより、クラス パスにファイルが重複することになります。
  2. apache.commons.codec.binary.Base64 クラスがリンクされていませんでした (GsonPlus に必要)。

したがって、私の質問はより具体的には次のようになります。このような CNFE エラーを診断する、つまり、エンドポイントを分解して再構築することなく、力ずくで診断する方法はありますか?