問題タブ [spring-messaging]
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.
javascript - Springメッセージングを使用してstomp経由でメッセージを送信できません
spring-messaging を使用して、ブラウザから STOPM 経由でメッセージを送信および処理しようとしています。しかし、メッセージは送信されません。
いくつかのコード:
ご覧のとおり、組み込みのスプリング シンプル ブローカーを使用しています。
Firefoxデバッグでスクリプト部分をデバッグしようとすると、部分に到達しません:
多分ストンプは接続できませんか?
ストンプと靴下のオブジェクトが正しく作成されます。
doSmth() 関数を呼び出して、handleShout(着信を叫ぶ) 関数をブレークポイントしようとすると、そのブレークポイントをキャッチできません。関数が呼び出されることはありません。
私が間違っていることがわかりますか?
spring-boot - application.properties で Spring Boot Artemis の SSL、ユーザー名、およびパスワードを構成するにはどうすればよいですか?
私は Spring Boot 1.3.1 を使用しており、application.properties を通じて JMS コンポーネントを自動構成できます。
Artemis をメッセージ ブローカーとして使用しているため、spring-boot-starter-artemis を使用しています。このリンクのドキュメントに記載されているように、spring.hornetq.* プロパティを置き換えて spring を配置するだけです。 artemis.* 代わりに。
問題は、HornetQ/Artemis のユーザー名、パスワード、および SSL 構成を構成する方法が示されていないことです。ここに示すように、SSL とユーザー/パス認証を使用するように Artemis を構成しました。
SSLとユーザー/パスを追加するためにどのプロパティを指定できるか知っている人はいますか?
ありがとう!
spring - Spring を使用した 2 つの Java クラス間の通信
同じアプリケーション内に Runnable を実装する 2 つの Java クラスがあります。たとえば、A クラスと B クラスです。
これら 2 つのクラスは BlockingQueue を共有してデータを渡します。クラス A は、BlockingQueue を介してクラス B にデータを送信します。次に、クラス B がデータを取得して処理します。私がやろうとしているのは、このデータを処理した結果としてクラス B で何らかの条件が発生した場合、クラス A にメッセージを送信し、クラス A がこれらのメッセージを出力することです。
そこで、Apache ActiveMQ を使った Spring のメッセージングを見てみましたが、「activemq start」コマンドを使用して通信を行うにはブローカーを起動する必要があるようです。このブローカーを開始せずにこれを行う可能性はありますか?
これを行うための最良のオプションは何ですか? Springフレームワークを使用してこれを行いたいので、Springで何らかのアプローチを使用して行うことができますか? または、春を使用する唯一の可能性は、apache activemq を使用することですか?
java - 春のブローカチャネルへのアクセス
Spring WebSocket とメッセージングの使用方法についていくつか質問があります。そのため、Web サービス コンシューマー エンドポイントにデータ ペイロードを送信する外部 Web サービス プロデューサー エンドポイントとやり取りするプログラムがあります。プログラムの反対側では、これらのデータ ペイロードを複数の WebSocket 接続 (stomp および sockjs) にルーティングします。外部 Web サービス プロデューサーは、すべてのクエリ リクエストの各データ ペイロードでサブスクリプション ID を提供しているため、私のアプローチは、独自の一意の宛先 (つまり、/user/{subscriptionId}/subscribe) を持つ SimpMessagingTemplate を使用してそれらをブローカーに送り返すことです。こうすることで、クエリが重複して作成された場合に各 Websocket クライアントを既存の宛先にサブスクライブし、それ以外の場合は外部 Web サービス プロデューサーに新しいサブスクリプションのみを要求できます。
データ ペイロードをメッセージ ブローカーに送信できるように、Web サービス コンシューマーなどの別のコンポーネント内から SimpMessagingTemplate にアクセスするにはどうすればよいですか? SimpMessagingTemplate を静的に宣言し、テンプレート オブジェクトが格納されているコントローラー内で getter 関数を宣言するだけですか?
すべての既知の宛先のリストと、各宛先への Stomp クライアント サブスクライバーの数を取得するにはどうすればよいですか? 外部 Web サービス プロデューサーは各サブスクリプションの終了時間を設定するため、宛先にまだサブスクライバーがある場合は自動更新リクエストを実装したいと考えています。マップ/キャッシュを使用して自分で追跡し、websocket セッションが開いたり閉じたりするたびに更新できると思いますが、リスクを最小限に抑え、おそらくエラーが発生しにくくなるか、おそらく完全なこれを行うには、RabbitMQ や ActiveMQ などの注目のブローカーが必要です。
java - 春のユーザーの目的地
次のように、ユーザー定義の宛先チャネルに公開するスプリング ブート アプリケーションがあります。
次に、SockJS クライアントを踏みつけて、それにサブスクライブし、メッセージを受信できます。「/data」というSpringアプリケーションに登録されたストンプエンドポイントがあるとします
実際には、同じ個別のユーザー宛先にサブスクライブする複数のユーザー クライアントが存在するため、各パブリッシュ/サブスクライブ チャネルは 1 対 1 ではなく、Spring の "/topic" の概念をプログラムで定義する必要があるため、この方法でのみ実行しています。 「/queues」は 1 人のユーザーのみが使用できます。ユーザー宛先にサブスクライバーがなくなったことをどのように知ることができますか? また、ユーザー宛先を削除するにはどうすればよいですか?