Что мы имеем:
- Debian сервер
- сайт на php
- вебсокет сервер на workerman
С помощью вебсокета идет обмен сообщениями. Таких пользователей где-то 20 человек.
Появилась задача, чтобы пользователю через вебсокет прилетали определенные сообщения/команды.
Для этого нужен сервер, который бы постоянно работал с базой данных(ну и не только) и при определенных данных посылал нужному пользователю сообщение через вебсокет, т.е. нужна параллельная обработка для подключенных пользователей.
Подскажите на чем это проще реализовать? Может есть какие-то готовые варианты, которые можно подогнать под себя?
Для правильного вопроса надо знать половину ответа
У Workerman'а, помнится, есть генерация событя по таймауту, можно просто по такому событию проверять БД и рассылать всем ещё не отправленные сообщения.
Да, но это же опять же произойдет последовательно? Например, мне надо каждые 5 секунд проверять что-либо для всех 20 пользователей и кому надо отсылать.
DSmith, Что значит "последовательно"? Если нужно, то создавайте таймер на каждого пользователя. Но, возможно, вам будет достаточно разом проверить все события и отослать каждому пользователю то, что относится именно к нему.
Таймер нужен как раз на каждого пользователя. Т.е. я смогу такой же таймер повесить при
$connection->onWebSocketConnect на пользователя при коннекте выходит?
Rsa97, да, спасибо, все работает. Скорее всего, подойдет такой вариант.
Прибивать при дисконнекте даже не всегда надо, т.к. есть еще задача, чтобы пользователь запустил какой-то процесс, ушел, а действия продолжались.