Короткая шпаргалка по организации использования websocket на связке Workerman, Yii2 и NGINX. Без использования расширений Yii2 из репозитория composer.

Заметки по Workerman

Несколько вещей которые были для меня не очевидны.

  • голый Workerman запускается из консоли, запустить его в web action Yii2 не получится. Т.е. сначала надо его запустить на сервере, а потом уже использовать во вьюхах.
  • Workerman можно запустить с ключом -d чтобы демонезировать его
  • мы запускаем Workerman в виде http сервера, а NGINX может проксировать любой трафик в том числе ws и wss

Все нижеописанное работает, но не очень красиво, я это понимаю ;)

Установка Workerman

Идем в папку с установленным Yii2 (где композер и папка вендор)

Настраиваем проксирование NGINX

 Запускаем сервер Workerman

Для этого сделаем файлик в корне домена. Назовем его ws.php. Там что-то вроде.

Чтобы его запустить в консоли запускаем

 Обращение к Workerman через Javascript websocket

 

23 мая 2019 |

4 Комментариев к “Websocket , Workerman, Yii2 и NGINX”

  1. Anton 2 сентября, 2019

    Как сделать чтобы wokerman запускался автоматом после перезагрузки сервера?

  2. Azzrael 1 октября, 2019

    Anton, я в итоге отказался от Workerman для своих задач, поэтому автозагрузку не делал. Но если бы было надо, то гугление начал бы с init.d/skeleton .

  3. Alex 5 марта, 2020

    Почему отказался? у меня уже 2 рабочих проектов на нем.
    Первый уже работает около 3 лет, второй два месяца. Полет нормальный.

  4. Azzrael 2 апреля, 2020

    Alex, да в той задаче оказалось проще обойтись вообще без вебсокетов.

Есть что сказать по теме статьи? Пожалуйста - пишите!