Аутентификация с использованием Orbited, STOMP и MorbidQ
Вопрос
Я использую Orbited для создания системы чата Comet на веб-сайте на основе PHP.Однако в настоящее время любой пользователь может подписаться или разместить пост на любом канале.
Что я хочу сделать, так это заставить браузер прослушивать обновления непосредственно с сервера Orbited, а все остальные действия (подписка, отправка) обрабатывать уровнем аутентификации PHP, который взаимодействует с Orbited через сокеты.Есть ли способ сделать это, или мне понадобится более надежная очередь обмена сообщениями?
Решение
Вы можете заставить пользователей подписаться на отдельные каналы.
Выполните отправку сообщения через PHP-скрипт (вызов AJAX), который будет:
- проверьте, аутентифицирован ли отправитель
- отправьте сообщение аутентифицированным пользователям (выполните итерацию по списку аутентифицированных пользователей и отправьте каждому пользователю сообщение).
Как отправить сообщение STOMP с PHP?Используйте PHP STOMP-клиент.
Другие советы
Если вы используете MorbiQ, вам следует ознакомиться с плагином RestQ (http://www.morbidq.com/trac/wiki/RestQ).