Как правильно реализовать обмен сообщениями между пользователями?
Подскажите, как оптимальней (с точки зрения нагрузки на сервер) организовать обмен сообщений между пользователями.
Например обмен личными сообщениями. Пользователь должен получать сообщения без перезагрузки страницы, пользователь должен отправлять сообщение без перезагрузки страницы.
Сообщения редактировать нельзя, но можно удалять (ставится метка isDeleted) в течение определенного периода времени, после публикации.
Пользователь может просматривать всю переписку с нужным ему пользователем.
Изначально думал сделать ajax-запросы каждые 30 сек - но думаю сервак этому не обрадуется. В связи с чем и спрашиваю - как правильно и оптимально организовать обмен сообщениями между пользователями.
используемый ЯП - php.
есть еще одна идея - организовать на очередях (rabbit) rpc, но не знаю, правильно ли это.
Прошу поделиться своими соображениями по этому поводу))
самый оптимальный вариант с точки зрения производительности - websockets. Можно реализовать на ReactPHP (+libav например) или node.js с шиной данных на zeromq/rabbitmq с основным приложением (в любом случае нужно будет организовывать).