2016-04-16 3 views
0

Ситуация

Am пытается построить в реальном времени игрушечный чат приложение, используя следующий набор технологийКак RethinkDB, Laravel и Ratchet работают вместе?

  • RethinkDB
  • Laravel 5
  • Ratchet

Что я воспринимаю быть концептуальная ситуация

enter image description here

Зеленые стрелки представляют собой обмен данными в режиме реального времени.

Черные стрелки представляют собой другие запросы в режиме реального времени и обмен данными.

Мой вопрос

мне было интересно, если мое понимание реализации чата с использованием стека технологий является правильным на основе схемы?

если есть неточности, что бы они сделали?

ответ

0

Ваша интерпретация кажется правильной, хотя я бы не предложил использовать websocket для отправки данных, но только для распространения живых данных всем подписчикам канала. Для этого получите API (желательно), чтобы получать новые сообщения/чаты/пользователи. И используйте push-сервер для отправки данных, полученных в сокет. Толкающий сервер - это всего лишь промежуток между приложением и websocket, что позволяет php (laravel) легко обращаться к сокету.

Edit: разработка enter image description here

Чтобы повторить попытку объяснить это вам. Все клиенты слушают сервер WebScoket. Это соединение, которое является пассивным, и они будут получать сообщения от сокета только по тем темам/подпискам, которые у них есть.

Когда кто-то хочет отправить сообщение (в случае приложения чата), они отправляют его в API, чтобы проверить, правильно ли он его отправил, возможно, даже использовать apikeys или другие средства безопасности.

После того, как сообщение получено в API, API хочет распространить его на всех слушающих клиентов для этой комнаты чата/темы/подписки.

Таким образом, сообщение пересылается на push-сервер, который находится между бэкэнд (API, контроллерами) и WebSocket (подписки, темы).

После этого push-сервер отправляет сообщение в WebSocket, а затем WebSocket передает сообщение правильным слушателям.

Преимущества использования API:

  • безопасности
  • Масштабируемость
+0

я до сих пор не совсем "обращал внимания на" то, что вы говорите. может помочь, рисуя некоторые диаграммы? –

Смежные вопросы