|
websocket через некоторое время почему-то замолкает
|
|||
---|---|---|---|
#18+
Всем привет. Кто работал с websocket подскажите пжлста почему он может через некоторое время просто замолкать, и где (или как) можно отыскать быстро где кроется ошибка. Система простая: взял ratchet, поставил его через композер к yii2 (пакет cboden/ratchet), запилил консольный контроллер вот с таким содержанием: Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28.
Ну и собственно сам ChatServer, в котором по onMessage происходит обработка полученной команды (например подписка на отслеживание чата) и при необходимости рассылка результата её выполнения всем подписанным на эту рассылку клиентам. и вот некоторое время это всё чудо прекрасно работает (наверное несколько часов где-то, точно время падения определить не удалось), а через некоторое время сервер просто замолкает, то есть коннекты принимает, сообщения принимает, но в ответ на них ничего не шлёт, и рассылки по клиентам не производит. Разумеется сам процесс висит себе спокойно и никто его не режет. Что это вообще может быть, и куда можно посмотреть, чтобы хоть немного приблизиться к решению этой проблемы, а то скоро проект сдавать, а у меня одна из самых важных его частей каждых несколько часов просто отваливается :) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2019, 02:09 |
|
websocket через некоторое время почему-то замолкает
|
|||
---|---|---|---|
#18+
Програмёр, Поздно увидел топик, но отвечу. Никогда ты не найдешь идеальную реализацию websocket на php. Всегда надо допиливать. Ratchet: 4Мб кода, 1000 файлов с зависимостями. Лучше самому писать по RFC. Ratchet нужно юзать, где сервак с движком на рэтчет. Код с нуля 4 файла - 10кб, никаких зависимостей. Работает в 90% случаев. Остальное допилить налету легко. Вот аналог твоего кода, сравни: Код: php 1. 2. 3. 4.
Ничего не замолкает 365 дней в году. Либо так Код: php 1. 2. 3. 4. 5. 6. 7.
Там же содержится класс клиента. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2019, 22:17 |
|
websocket через некоторое время почему-то замолкает
|
|||
---|---|---|---|
#18+
TolikD, > Никогда ты не найдешь идеальную реализацию websocket на php можно было ничего больше не писать ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2019, 10:11 |
|
websocket через некоторое время почему-то замолкает
|
|||
---|---|---|---|
#18+
Дегтярев Евгений, Да ну! Не в этом дело. Основная мысль была - надо писать с нуля. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2019, 19:16 |
|
websocket через некоторое время почему-то замолкает
|
|||
---|---|---|---|
#18+
TolikD, ну так и за чем напишешь все с нуля, окажется что получил сферический вебсокетый сервер в вакууме ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2019, 16:37 |
|
websocket через некоторое время почему-то замолкает
|
|||
---|---|---|---|
#18+
Дегтярев Евгений, Это ты к чему? К тому что серв с нуля не прикуришь к фреймворку? Или к тому, что с ним чат не заработает? (хотя мой класс по дефолту - чат) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2019, 19:21 |
|
websocket через некоторое время почему-то замолкает
|
|||
---|---|---|---|
#18+
Проблема решилась )) это просто я тупой, с этим вэбом отвык от нормальных вещей типа слежения за таймаутами соединений и утечками ресурсов :)) Всё оказалось крайне просто - у меня mysql соединение по таймауту закрывал, вот и падало всё. Проблема решилась следующим кодом в начале метода onMessage: Код: php 1. 2. 3. 4. 5. 6.
Теперь всё работает стабильно как часики (вот щас пошёл проверить на всякий случай, чат крутится уже неделю и всё ок). Теперь только осталось на высоких нагрузках его погонять :) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2019, 01:40 |
|
websocket через некоторое время почему-то замолкает
|
|||
---|---|---|---|
#18+
Програмёр, Хорошо, что разобрался сам. Но не лучше ли было выставить ini_set('mysql.connect_timeout','0'); ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2019, 15:22 |
|
websocket через некоторое время почему-то замолкает
|
|||
---|---|---|---|
#18+
TolikD, очень хотелось, чтобы система умела сама обрабатывать такие ситуации :) Всё-таки чем меньше зависимостей от окружения, тем меньше вероятность, что что-то пойдёт не так. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2019, 13:13 |
|
|
start [/forum/topic.php?fid=23&msg=39869702&tid=1459837]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
2ms |
others: | 11ms |
total: | 126ms |
0 / 0 |