【发布时间】:2015-12-27 23:26:37
【问题描述】:
我们有一个配置了 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 组成的集群时。
如果我们尝试将消息从他登录的实际 tomcat 推送给用户 - 它会起作用。
但是如果我们尝试从另一个 tomcat 节点推送消息 - 它不会到达用户。
1) 我们能做什么?
2) 将 websocket 队列名称更改为用户登录名而不是默认行为对我们有帮助吗?
【问题讨论】:
标签: java spring websocket spring-websocket