spring-websocket と spring-messaging (バージョン 4.2.2.RELEASE) を使用して、完全な機能を備えたブローカー (Apache ActiveMQ 5.10.0) を使用して websocket に STOMP を実装しています。
私のクライアントは、宛先のみにサブスクライブすることを意図しています。つまり、メッセージを送信できないはずです。さらに、クライアントがサブスクライブできる宛先をより厳密に制御したいと考えています。どちらの場合でも(つまり、クライアントがメッセージを送信しようとしたり、無効な宛先にサブスクライブしようとしたりする場合)、できるようにしたいと思います
- 適切なエラーを送信する、および/または
- ウェブソケットを閉じる
すべての宛先が ActiveMQ に転送されることに注意してください。インバウンド チャネルにChannelInterceptorを実装できると思ったのですが、API を見ると、目的を達成する方法がわかりません。これは可能ですか?クライアントのリクエストを検証する最善の方法は何ですか? 私の websocket 構成は以下のとおりです。
<websocket:message-broker
application-destination-prefix="/app">
<websocket:stomp-endpoint path="/pushchannel"/>
<websocket:stomp-broker-relay relay-host="localhost"
relay-port="61613" prefix="/topic"
heartbeat-receive-interval="300000" heartbeat-send-interval="300000" />
<websocket:client-inbound-channel>
<websocket:interceptors>
<bean class="MyClientMessageInterceptor"/>
</websocket:interceptors>
</websocket:client-inbound-channel>
</websocket:message-broker>