![](/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.