2016-04-02 8 views
0
私は奇妙な構文を言い訳グルーヴィーGrailsのを/使用しています

、私はので、私は間違った方法でこのことについてつもりなら、私に知らせてくださいWebSocketをを使用する新しいも午前:使用特定の接続にのみ送信春WebSocketを

春のWebSocketを、私は私が唯一の加入ユーザが特定の値/ ID経由でサーバに渡されているように、そのユーザーIDの上にメッセージを送信したい、しかし

SimpMessagingTemplate brokerMessagingTemplate 
users.each { 
    brokerMessagingTemplate.convertAndSendToUser(it.id,"/topic/path",data) 
} 

を経由して、特定の加入したユーザーにメッセージを送信することができています。私はおそらく、私はこの情報をサーバーに渡すSTOMPヘッダー値を追加することができ、サーバーはこれに一致する接続にのみメッセージを送信すると考えたので、接続はWEPAGE負荷で初期化されます。

var socket = new SockJS("/url/stomp"); 
var client = Stomp.over(socket); 
var headers = {'additionalId': additionalId}; 
client.connect({}, function() { 
    client.subscribe("/user/topic/path", function (data) { 
}, headers); 

は、まず、私は、ヘッダの値を追加することでこれを行うための正しい方法であるかどうか知らない、そして第二にSimpMessagingTemplateは、特にヘッダに追加のIDを提供しているものに送るようにする方法がわからないイム。

答えて

1

代わりにあなたはほどDestinationVariableを使用することができますヘッダーを使用する:

brokerMessagingTemplate.convertAndSend("/topic/something.${additionalId}".toString(), data) 

とさらにあなたTopicSubscriptionInterceptor()を実装することで、特定の/something.{additionalId}に加入者を制限したい場合があり

@MessageMapping("/something.{additionalId}") 
protected String chatMessage(@DestinationVariable String additionalId, Principal principal, String data) { ... } 

を使用検証することができますPrincipal

+0

応答のおかげで、私はまだこれをテストする機会がなかったが、私はコメントします/マ私がするときの答えとしてのrk – Alexjjsmith

+0

hii ..多分変数についてはどうですか? '/ hello/{file}/{mycode}'? – akiong

関連する問題