Думаю, многие слышали про такую технологию как вебсокеты. Это протокол связи поверх TCP-соединения, предназначенный для обмена сообщениями между браузером и веб-сервером в режиме реального времени. Что позволяет получить функционал привычных уже мессенджеров на сайте. Ну и вообще для мгновенного отображения каких-про действий на сайте, будь то лайк к фотографии, комментарий и т.п.

При слове «вебсокет» у многих сразу возникает ассоциация с NodeJS. Так как именно в этой среде исполнения часто реализуют указанный функционал. Но последователи PHP не оставляют попыток реализовать функционал ассинхронности. И, как мне кажется, фреймворк Workerman на сегодняшний день самое удобное, легкое и простое решение, реализующее указанный функционал. В своё время я пробовал phpdeamon, Ratchet и AmpPHP. Но все они как-то не вдохновляли. А Workerman покорил своей простотой и функциональностью. И что важно, он отлично подходит для использования его в качестве компонента MODX.

Чтобы пощупать его вживую, я поставил его на сайт через композер, взял скрипты серверной и клиентской частей из доки, чуть поправил, на сервере запустил скрипт серверной части

php server.php start
и всё. Вебсокеты готовы. Как это работает я продемонстрировал в небольшом видео.

Навесив UI для сообщений, получится шикарный компонент без NodeJS и сторонних comet-серверов.

1   325

Комментарии ()

  1. Vladimir 21 августа 2020, 10:56 # 0
    Доброго дня
    Огромное спасибо за интересную тему.
    Я подписан на видео, но у меня много (особенно музыкальных) подписок, теряются уведомления в общей массе. Если можно, в телегу отправлять бы анонсы, блог\сайт\ютьюб, а?:s (канал в телеге, имею ввиду)
    1. Сергей Шлоков 21 августа 2020, 11:19 # 0
      Привет, Володь!
      Наверно, надо. Раз я теперь на сайте modx.pro персона нон грата, нужно как-то до сообщества доносить информацию.

      П.С. Я стараюсь дублировать информацию тут и в твитере.
      1. Vladimir 21 августа 2020, 11:53 # 0
        Телеграм канал удобнее тем, что он и доставка уведомлений и почти как закладки, т.е. и искать удобно. Ну, это все дело личных привычек, конечно. Но слать в телегу разве накладно? Хорошо бы, что б было)
        1. Сергей Шлоков 21 августа 2020, 12:27 # +1
          Оказывается, у меня уже есть канал и у него даже есть один подписчик )) Как ты его нашел? Даже я про него уже забыл.
          1. Vladimir 21 августа 2020, 12:33 # +1
            Да, как нашел не помню, но давно подписан))
            Спасибо, уже вижу уведомления.
    2. Семён 22 августа 2020, 21:32 # +1
      Сергей, классную штуку откопал, компонент бы на ней запилить, какой нибудь универсальный по отсылке месседжей, например уведомлялки о заказах когда менедежер сидит в админке, да и чатик тоже было бы круто на нем запилить, а то всякие jivosite приходится ставить. Темя очень актуальная, просто многие, понимая сложность реализации, боятся пробовать что-то с этими веб-сокетами делать. Спасибо за статью и видос, на канал в телеге подписался. Жду новых статей
      1. Сергей Шлоков 23 августа 2020, 07:05 # 0
        Штука действительно классная! Её даже в Yii3 встраивают. Интересных вещей можно много понаделать. Но глубоко не ковырял. Только доку. Хочу хорошенько вникнуть и тогда расскажу поподробнее.

      Вы должны авторизоваться, чтобы оставлять комментарии.

      Выделите опечатку и нажмите Ctrl + Enter, чтобы отправить сообщение об ошибке.