簡體   English   中英

Spring WebSocket-群集中的sendToUser在備份服務器上不起作用

[英]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來進行設置。 請參見setUserDestinationBroadcastsetUserRegistryBroadcast

請隨時在https://jira.spring.io上發送反饋/改進請求!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM