![](/img/trans.png)
[英]Spring websocket - send messages to user destinations from outside the websocket server
[英]Spring websocket - sendToUser from a cluster does not work from backup server
我们有一个配置了spring websocket的spring mvc('spring-websocket',版本:'4.1.0.RELEASE')。
我们有一个简单的类,它执行以下代码:
@Autowired
private SimpMessagingTemplate template;
@Override
public void push(Long userId, Object message, WebsocketQueue queue) {
String loginName = this.userRepository.getLoginName(userId);
this.template.convertAndSendToUser(
loginName,
queue.getMapping(),
message);
}
这对于单个雄猫(非集群环境)非常有效
我们面临的问题是使用两个雄猫的集群。
如果我们尝试将消息从实际已登录的tomcat发送给用户,则该消息有效。
但是,如果我们尝试从另一个tomcat节点推送消息-它不会到达用户。
1)我们该怎么办?
2)将websocket队列名称更改为用户登录名而不是默认行为是否对我们有帮助?
这可以通过在Spring Framework 4.2中添加的功能来解决:
解决服务器集群中的用户目标
用户注册表可以使用特定主题目的地广播和共享其内容。 您可以通过为集群部署配置StompBrokerRelay
来进行设置。 请参见setUserDestinationBroadcast和setUserRegistryBroadcast 。
请随时在https://jira.spring.io上发送反馈/改进请求!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.