Асинхронно отправлять запрос с сервера на интерфейс

Я создаю чат-бота через веб-интерфейс, который взаимодействует с большими API-интерфейсами платформы чата, такими как Slack. Это текущий рабочий процесс:

  • Пользователь отправляет сообщение моему боту через Slack
  • Мое веб-приложение (Python Flask) получает HTTP-запрос от серверов Slack с идентификатором пользователя.
  • Событие добавляется в очередь, и мое веб-приложение просто отправляет обратно 200 кодов состояния
  • Работник создается для обработки события. Рабочий заканчивает тем, что делает API-вызов Slack с идентификатором пользователя и отображаемым сообщением.

Эта система работает нормально. Тем не менее, теперь я хочу иметь свой собственный интерфейс чата, взаимодействующий с моим сервером. Как мне сделать так, чтобы мой интерфейс ждал уведомлений, отправленных моим сервером, и впоследствии отображал сообщение? Нужно ли полагаться на веб-сокет? Есть ли другие способы сделать это, о которых я не думал? Ясно, что мне нужно что-то, что постоянно поддерживает связь между клиентом и моими серверами, в отличие от вызовов API, которые не требуют постоянного соединения?

Дополнительной проблемой является тот факт, что мой сервер API и мои работники независимы. То есть, когда сервер API получает запрос, рабочий порождается независимо. Если бы я вообразил что-то, используя websocket, я полагаю, что мой работник должен будет отправить запрос на мой сервер API, который затем отправит контент через websocket клиенту. Мне интересно, кажется ли это правильным или просто абсурдным.

0 ответов

Другие вопросы по тегам