Spring Websocket несколько серверов Tomcat

1

У меня есть приложение, которое использует много кошек. Также он использует websockets. Каждый tomcat сохраняет в userSessionRegistry некоторую информацию о подключенных пользователях. Но если пользователь пришел к tomcat A, другие коты B, C, D.. не знают о подключенных пользователях к tomcat A и их уникальным именам очереди. И когда я пытаюсь сделать что-то вроде этого:

messageTemplate.converAndSendToUser(userNameConnectedToTomcatA, ...) 

от томацатов B, C, D он не отправит.

Есть идеи?

Теги:
spring
websocket

1 ответ

2
Лучший ответ

это может быть достигнуто путем внедрения UserSessionRegistry. См. DefaultUserDestinationResolver, который очень прост и хранит данные в памяти. Его можно заменить чем-то вроде Redis, чтобы распространить его.

Это то, что было на уме, чтобы добраться. Вы можете открыть запрос в JIRA, чтобы мы могли отслеживать его? Также, если вы захотите это сделать, я вам поможем.

  • 0
    Можно ли настроить DefaultUserDestinationResolver через xml? Я использую релиз 4.0.2
  • 0
    Да, смотрите здесь docs.spring.io/spring-framework/docs/current/… . Хотя это относится к пространству имен Spring MVC, идея точно такая же.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню