Spring boot - широковещательная передача ответа API нескольким клиентам через веб-сокет - PullRequest
0 голосов
/ 16 июня 2020

Я работаю над требованием, при котором 2 пользователя могут выполнять вызов API, а сервер сгенерирует URL-адрес и вернет его для присоединения пользователей. Этот URL-адрес будет одинаковым для обоих пользователей и приведет их в одно и то же лобби.

Однако сервер сгенерирует URL-адрес, только если canUserGenerateUrl(userA) истинно.

Например: Давайте предположим, что User A имеет область действия для генерации URL, пользователю B придется ждать, если его / ее клиент сначала вызовет API.

Сценарий 1:

Пользователь A ---> Вызов API ----> сервер генерирует и сохраняет URL-адрес в БД ---> Возвращает URL-адрес для пользователя A, чтобы присоединиться

Пользователь B ---> Вызов API ----> сервер определяет URL-адрес, уже созданный для встречи между 2 ----> возвращает URL-адрес из БД

Это счастливый поток.

Сценарий 2:

Пользователь B ----> API call ----> сервер не может сгенерировать URL-адрес, поскольку у пользователя нет области действия ---> возвращает исключение, и интерфейс перенаправляет пользователя B на страницу ожидания

Пользователь A ----> API-вызов - ---> сервер генерирует URL-адрес, сохраняет его в базе данных и возвращает пользователю A ----> Пользователь A присоединяется к лобби

Теперь проблема:

В сценарии 2 я нужен способ для пользователя B получать уведомление (я предполагаю, веб-сокет) со сгенерированным URL-адресом для лобби. Затем внешний интерфейс пользователя B может обновить / присоединиться к лобби с пользователем A, у которого была возможность создавать / запускать лобби.

Итак, как клиент может подписаться на веб-сокет в java spring и получать сообщения при успешном завершении полностью отдельного вызова API. Вызов, который даже не будет отправлен через веб-сокет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...