@Narts

Реализация вебсокетов на php?

Всем привет! Пару недель назад наткнулся на такой вебсокет чат на php, успешно интегрировал его себе в проект и радовался. До этого с сокетами не работа. Даже такая штука, как запуск php-скрипта из консоли (как разбился чата) было в новизну
Так вот, дни шли, скрипт сокет-сервера совершенствовался (реализовал счётчик онлайна на сокетах, научился получать информацию, обрабатывать и возвращать клиенту (т.е. использовать сервер не только для чата)). И тут где-то прочитал что для сокетов пхп лучше вообще не использовать, а использовать ноду

Исходя из этого, возникают следующие вопросы:
1. Если я продолжу дальше работать с сокет сервером на пхп, который указал выше, с какими проблемами я могу столкнуться? Это же по сути демон (или как там их называют) или нет? Уже понял, что такого функционала, как отправка данных конкретному пользователю в данной реализации нет (или есть? Кому не сложно, взгляните код файла server.php)
2. Если переходить на ноду, то суть кода сокет сервера (алгоритм) будет такая же как я реализации выше?
3. Ну и хотелось бы выслушать советы по сокетам, особенно если они на пхп

Всем спасибо, кто откликнется
  • Вопрос задан
  • 170 просмотров
Пригласить эксперта
Ответы на вопрос 2
Sanasol
@Sanasol Куратор тега PHP
нельзя просто так взять и загуглить ошибку
Как заставить работать Swoole сокет сервер в связке с RabbitMQ?
вот недавнее обсуждение и почему мне лично не нравится идея запускать сокеты на пыхе.

Так же был не очень удачный опыт тестирования ratchet, который работал через раз или падал от нескольких десятков подключений. Или не падал, но держал максимум 10-20 клиентов, а остальных просто сбрасывал и не подключал.

С ноды в последние разы кстати тоже переехал(на golang), потому что не очень люблю JS с его callback-hellом, а писать нормально лень xD

Из всех тестов golang самый быстрый и устойчивый получился. Но конечно на нём тяжелее работать чем на ноде или пыхе, это если с нуля начинать изучать язык пытаться и сразу пилить сервер для продакшна :D
Порядка 3000 онлайна держал на говнокоде диком, когда на таком же коде нода не выдерживала больше 1300-1500 юзеров.
Ответ написан
Комментировать
@Levhav
Возьмусь за разработку проектов любой сложности.
Я однажды тоже начал писать вебсокет сервер. Но на C++ вот что из этого вышло https://habrahabr.ru/post/341662/
От первых сообщений до готового продукта очень длинный путь. Если это для вас не хобби а что то с надеждой комерческого применения будьте готовы к тому что путь к релизу будет очень долгим. Да и я не знаю что вы такого выдумаете чтоб ваше решение хоть чем то выделялось на фоне аналогов у которых есть пользователи и документация.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы