我正在使用Spring websocket实现.要向客户端发送消息,有两种方法:
1)使用@SendToUser注释
2)使用convertAndSendToUser方法SimpMessagingTemplate
@SendToUser获取一个布尔参数broadcast,如果设置为false,则将该消息发布到当前会话.有没有办法让我有这种行为SimpMessagingTemplate.
如果我们看一下SendToMethodReturnValueHandler源代码,我们会看到:
if (broadcast) {
this.messagingTemplate.convertAndSendToUser(user, destination, returnValue);
}
else {
this.messagingTemplate.convertAndSendToUser(user, destination, returnValue, createHeaders(sessionId));
}
Run Code Online (Sandbox Code Playgroud)
那么,你的用例只需使用那个重载convertAndSendToUser并提供一个Map`sessionId:
messagingTemplate.convertAndSendToUser(user, destination, payload,
Collections.singletonMap(SimpMessageHeaderAccessor.SESSION_ID_HEADER, sessionId))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2665 次 |
| 最近记录: |