Сокеты сервера в PHP, мой опыт

В данной статья расскажу мой опыт работы с websockets в PHP. Сравним 2 пакеты который на мой взгляд являются лучшими.

Уже несколько дней как пробую создать сервер работающий в PHP а в частности в фреймворке Yii2.

Почему сокеты?

Решил использовать сокеты потому что данная технология очень быстро работает. Например API Телеграмма работает с сокетами, у них есть всего-лишь несколько функций которые работают как обычный API.
Мне на Yii2 нужно писать тоже API сервис.

Какие пакеты пробовал использовать?

  • cboden/ratchet: “^0.4.0” – этот работает но не адаптирован под Yii2
  • workerman/phpsocket.io: “^1.1” – этот не понравился, поэтому даже не буду про него писать
  • yiicod/yii2-socketio: “^1.1” – не работает но по идее адаптирован

Работа с пакетом yiicod/yii2-socketio

Установил пакет через composer и настроил в файле config/console.php добавил такие конфигураций:

Потому что функция pcntl_fork не запускалась на сервера установленые на Windows (в моём случае это OpenServer + Windows 10) то пришлось взять в аренду выделеный сервер. Хотел купить от McHost потому что доволен ихними услугами, но у них слабые сервера не продаются (для тестов) поэтому взял за 150 руб в месяц сервер от компаний FirstVDS. Пришлось установить Redis и настроить прослушку портов.

После долгих попыток всё-же получилось и сервер включился.

Но после этого появилась новая проблема: когда клиент (браузер) отправлял запрос на подключение, ему отказывали в рукопожатие (handshake), поэтому пришлось пробовать другие пакеты.

Работа с пакетом cboden/ratchet

Установил себе данный пакет и вот что написал:

config/console.php

servers/AppServer.php

controllers/AppController.php

Всё, это весь код и он работает. Работал и на локальной машине и работает и на VDS:

Заключение

Если есть рекомендаций можете оставить их в комментарии.
Данную статью писал пока ждал ответа от поддержки FirstVDS, не то чтоб они прямо очень трудно отвечают. Но ждать приходилось и больше получаса иногда, зато помогли – спасибо им.

Просмотры: 7 198
(3 оценок, среднее: 3,67 из 5)
Загрузка...

2 comments

  1. Valeriu ( User Karma: 0 ) says:

    Очень разочаровался в работе серверов FirstVDS.

    Сайты неделю работали медленно очень, а потом день вообще не работали.

    Вернулся в McHost.

Добавить комментарий для Вадим Отменить ответ

You have to agree to the comment policy.