Stompclient / SockJs - получение сообщений несколько раз через канал 1-1 брокера - PullRequest
0 голосов
/ 06 ноября 2019

Я работаю над модулем чата, для которого бэкэнд - это Java, а фронтенд - это Angular. Процесс чата работает следующим образом:

  1. Подключение к клиенту Stomp
  2. подписка на URL канала, например, для: queue/user-{userId}
  3. Сохранение сообщения на сервере с использованием stompclient->send('savemessage', {}, message)
  4. Сервер отправляет подтверждение, что сообщение сохранено
  5. Я отправляю сообщение пользователю из канала брокера, например, stompclient->send('queue/user-{toUserId}', {}, message)
  6. toUserId, если подписан с использованием queue/user-{toUserId} в канале, затем он получает сообщение. Работает нормально, когда toUserId подключен и подписан только один раз. Проблема возникает, когда я открываю другое соединение и подписываюсь на toUserId в другом браузере или мобильном приложении.

Проблема в том, что userId отправляет сообщение один раз, но toUserId получает сообщения 2 раза, так как открыто 2 подключения / подписки. Кто-нибудь сталкивался с такой ситуацией ранее?

Ниже приведены скриншоты:

  1. Получение сообщения: Receiving message
  2. Отправить сообщение: Send message
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...