問題タブ [jsr356]
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.
java - JSR-356 でサーバーが開始する WebSocket ブロードキャスト
JSR-356 でサーバーが開始した WebSocket メッセージをブロードキャストするベスト プラクティスは何ですか?
明確にするために、注釈を使用するときに返信やブロードキャストがどのように機能するかは知って@OnMessage
いますが、最初にクライアントからメッセージを受信せずにサーバーからイベントを送信したいと考えています。MessageServerEndpoint
つまり、以下のコードのインスタンスへの参照が必要だと思います。
次の解決策を見てきましたが、静的メソッドを使用しており、あまりエレガントではありません。
java - Spring Boot で Java API for WebSocket (JSR-356) を使用する
私はSpringが初めてです(そしてstackoverflowで質問しています)。
Spring Boot を介して組み込み (Tomcat) サーバーを起動し、JSR-356 WebSocket エンドポイントを登録したいと考えています。
これが主な方法です。
構成は次のようになります。
実装はEchoEndpoint
簡単です:
2 番目の部分については、 https ://spring.io/blog/2013/05/23/spring-framework-4-0-m1-websocket-support というブログ投稿に従いました。
ただし、アプリケーションを実行すると、次のようになります。
のメソッドがこの時点でまだ返されるため、例外はさらにNullPointerException
inによって引き起こされます。ServerEndpointExporter
getServletContext
applicationContext
null
Spring をよりよく理解している人が助けてくれますか? ありがとう!
java - jsr 356 を使用しようとすると java.lang.linkage エラーが発生する
桟橋に展開された戦争内から jsr 356 websocket 接続を実装しようとしています。
私はこれをガイドとして使用しています: http://aredko.blogspot.com/2013/11/java-websockets-jsr-356-on-jetty-91.html
(Jetty サーバーが組み込まれた jsr 356 を基本的に使用するチュートリアルはたくさんありますが、既存のサーバー内で Websocket 接続を構築するチュートリアルはありません。良いものはありますか?)
上記のコードを実行すると、次のエラーが発生します。
コードを参照する
私はこれを理解するのに途方に暮れています。gradle から次の行を使用して、websocket のものを取り込みます。
javax-websocket-server-impl jar と javax.websocket-api jar の両方に ServerContainer クラスが含まれていることがわかりますが、war ファイルにはそのうちの 1 つだけを含めています。jetty は内部の古いバージョンから引っ張っていますか? それとも、問題の原因を完全に誤解していますか?
私が持っている桟橋のバージョンは次のとおりです: jetty-9.2.1.v20140609
java - ServerEndPoint、ClientEndPoint をテストする方法は?
を実装ServerEndPoint
しClientEndPoint
ましたが、どうすればテストできますか? たとえば、セッションに接続ラッパーがあり、セッションデータに依存する動作をテストしたい、またクライアントとサーバー間のメッセージングをテストしたい。戦争や web.xml などのアプリケーション構成、別の場所で使用される web-sockets インフラストラクチャがないことに注意してください。私が持っているものはすべて、マップされた ServerEndPoint および ClientEndPoint 実装です。
java - Websocket セッションで UserAgent にアクセスしますか?
Java の「JSR 356 - Java API for WebSocket」の Tyrus 参照実装を使用すると、Websocket のアップグレードに使用された HTTP 接続にアクセスする方法が見つかりません。したがって、ブラウザが送信した HTTP ヘッダーにアクセスできません。
HTTP UserAgent ヘッダーを読み取る方法はありますか?
「Session」オブジェクトを「TyrusSession」などにキャストすることは許容されますが、とにかくリモート アドレスを取得するにはそれを行う必要があります。Websocket 接続内のメッセージとして UserAgent を再度送信することは、私のフォールバック ソリューションです。