Как правильно реализовать обмен сообщениями между пользователями?

Подскажите, как оптимальней (с точки зрения нагрузки на сервер) организовать обмен сообщений между пользователями.
Например обмен личными сообщениями. Пользователь должен получать сообщения без перезагрузки страницы, пользователь должен отправлять сообщение без перезагрузки страницы.
Сообщения редактировать нельзя, но можно удалять (ставится метка isDeleted) в течение определенного периода времени, после публикации.
Пользователь может просматривать всю переписку с нужным ему пользователем.

Изначально думал сделать ajax-запросы каждые 30 сек - но думаю сервак этому не обрадуется. В связи с чем и спрашиваю - как правильно и оптимально организовать обмен сообщениями между пользователями.
используемый ЯП - php.
есть еще одна идея - организовать на очередях (rabbit) rpc, но не знаю, правильно ли это.

Прошу поделиться своими соображениями по этому поводу))
  • Вопрос задан
  • 3880 просмотров
Пригласить эксперта
Ответы на вопрос 4
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
самый оптимальный вариант с точки зрения производительности - websockets. Можно реализовать на ReactPHP (+libav например) или node.js с шиной данных на zeromq/rabbitmq с основным приложением (в любом случае нужно будет организовывать).
Ответ написан
Комментировать
Taraflex
@Taraflex
Ищу работу. Контакты в профиле.
Комментировать
KorsaR-ZN
@KorsaR-ZN
Посмотрите в сторону протокола XMPP.
Ответ написан
Комментировать
@Derfirm
Noname Developer.
Вебсокеты вам могут подойти, можно использоваеть Node.js
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы