Java Spring — как организовать общение пользователей?

Привет, пишу web приложение, в котором есть общение между пользователями (как в facebook, vk etc).
Встал вопрос о реализации. В Spring 4 ввели так называемые websockets при помощи sockjs и stomp на клиентской части. Архитектура сообщений следующая:

На клиенте отправляю сообщения "подписать на разговор", передаю id разговора в этом сообщении и подписывается на топик получения новых сообщений, на сервере запускается поток, который проверяет новые сообщения для разговора и при наличии отправляет на клиента.

Далее, логика следующая, при нажатии на другой разговора - посылается сообщение с другим id диалога, отменяется scheduler предыдущий и запускается новый для нового диалога.

И все прекрасно, пока пользователь не откроет другую вкладку и не попытается пообщаться в другой вкладке или в обеих сразу. Сразу возникают проблемы. Несколько подписок, в одной вкладке пользователь решил пообщаться с пользователем B, а в первой вкладке общался с пользователем A - и этот поток отменился. разумеется. Как решить проблемы нескольких вкладках? Или я не правильную архитектуру выбрал?
  • Вопрос задан
  • 3383 просмотра
Решения вопроса 1
@Metalfire
альтернатива stomp: habrahabr.ru/post/220015
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы