サーバーから特定のユーザーにのみWebSocketメッセージを送信する方法は?
私のwebappには春のセキュリティ設定があり、websocketを使用しています。サーバーから特定のユーザーにのみメッセージを送信しようとすると、トリッキーな問題が発生します。
マニュアルを読んだことからの私の理解は、私たちができるサーバーからです
simpMessagingTemplate.convertAndSend("/user/{username}/reply", reply);
そしてクライアント側では:
stompClient.subscribe('/user/reply', handler);
しかし、サブスクリプションコールバックを呼び出すことはできませんでした。私は多くの異なる道を試しましたが、運がありません。
/ topic / replyに送信すると機能しますが、接続されている他のすべてのユーザーも受信します。
問題を説明するために、私はgithubでこの小さなプロジェクトを作成しました:https://github.com/gerrytan/wsproblem
再現する手順:
1)プロジェクトのクローンを作成してビルドします(jdk1.7とmaven3.1を使用していることを確認してください)
$ git clone https://github.com/gerrytan/wsproblem.git
$ cd wsproblem
$ mvn jetty:run
2)に移動しhttp://localhost:8080
、bob / testまたはjim / testのいずれかを使用してログインします
3)[ユーザー固有のメッセージをリクエストする]をクリックします。期待:このユーザーのみの「ReceivedMessage To Me Only」の横に、「hello {username}」というメッセージが表示されます。実際:何も受信されません。