Skerrigan
@Skerrigan

Кто сможет помочь со сложной системой WebSocket-ов?

Я пишу сложно-составную систему. Одним из важных ее компонентов является подсистема передачи данных между тремя видами точек приема/передачи данных:
- Клиент-клиент (юзерская часть, классический js-код).
- Сервер-клиент (серверная часть, служит для самостоятельной отправки данных на конечного клиента/группу_клиентов)
- Сервер-сервер (это своеобразный ретранслятор, мастер-сокет).

За отправную точку взял код из гит-хаба:
https://github.com/ghedipunk/PHP-Websockets
***Дело в том, что до данной попытки я уже делал самостоятельного мастер-сокета и серверного клиента. Но в силу моих скудных знаний код вышел явно плохого качества. Поэтому и решил использовать уже написанное решение.

С ним вроде как все хорошо. Но данный код не умеет отсылать данные на конкретного юзера из общего массива (это я смог реализовать, не сильно сложно было). Так же там нету варианта серверного клиента. И вот на этом я застрял. Используя свой старый вариант клиента, я смог передать данные на мастер-сокет. Однако есть побочные проблемы:
- Как я не старался, я не смог заставить сначала подключиться конечного клиента, а затем, подключить серверного и через мастер-сокет передать данные на конечного клиента. Всегда почему-то подключается серверный клиент первым.
*Да и есть еще кучка мелких проблем, которые очень трудно описать.

Кого в реальной жизни мог помучить вопросами, тех уже замучил вконец. Буду рад вашим мыслям/коду исправляющему данные проблемы.
  • Вопрос задан
  • 2471 просмотр
Решения вопроса 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
Чисто формально, вопрос вида "кто поможет" не выглядит подходящим для Q&A сайта. Здесь ищут ответы на вопросы, а не людей.
А вот для сайта freelansim.ru этот вопрос подходит идеально: там как раз ищут людей.

А по теме вопроса все же спрошу - а чем не устраивает старый добрый НТТР? Миллионы серверов общаются друг с другом, создавая сокет только на время обращения, а не держа его постоянно открытым. И отлично себя при этом чувствуют.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
akubintsev
@akubintsev
Опытный backend разработчик
Вы, увы, нашли совсем неподходящую "библиотеку" для вебсокетов.
https://github.com/ratchetphp/Ratchet - это основа
habrahabr.ru/post/250085 - неплохая статья для иллюстрации
И приготовьтесь писать код в асинхронной парадигме.
Ответ написан
Ваш ответ на вопрос

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

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