次のように、ユーザー定義の宛先チャネルに公開するスプリング ブート アプリケーションがあります。
@Autowired
private SimpMessagingTemplate template;
public void send() {
//..
String uniqueId = "123";
this.template.convertAndSendToUser(uniqueId, "/event", "Hello");
}
次に、SockJS クライアントを踏みつけて、それにサブスクライブし、メッセージを受信できます。「/data」というSpringアプリケーションに登録されたストンプエンドポイントがあるとします
var ws = new SockJS("/data");
var client = Stomp.over(ws);
var connect_fallback = function() {
client.subscribe("/user/123/event", sub_callback);
};
var sub_callback = function(msg) {
alert(msg);
};
client.connect('','', connect_callback);
実際には、同じ個別のユーザー宛先にサブスクライブする複数のユーザー クライアントが存在するため、各パブリッシュ/サブスクライブ チャネルは 1 対 1 ではなく、Spring の "/topic" の概念をプログラムで定義する必要があるため、この方法でのみ実行しています。 「/queues」は 1 人のユーザーのみが使用できます。ユーザー宛先にサブスクライバーがなくなったことをどのように知ることができますか? また、ユーザー宛先を削除するにはどうすればよいですか?