Сделал websocket сервер на Ratchet
Проблема в том, что в onMessage если будет долгая выборка из БД или ещё какая-нибудь длительная операция(например загрузка URL), то весь сервер ступорится и не обрабатывает сообщения в loop. После выполнения длительной операции все сообщения, которые накопились в очереди отрабатываются и проходят нормально.
Объясню на примере чата:
Пишет один в чате Hello, js отсылает через вебсокет это сообщение, в onMessage я пересылаю всем это сообщение и после скачиваю файл. Так вот, сообщения эти не уходят, пока файл не будет скачан до конца и другие когда пишут тоже не могут написать, потому что сервер ступорится и обрабатывает все сообщения после завершения операции.
Пример сервера можно посмотреть на
https://github.com/ratchetphp/Ratchet