Быстрый Старт С Websocket На Основе Phpdaemon

Уже в хабе статья на эту тему.

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

Кроме того, самое сложное в изучении чего-то нового — это всегда начало.

Поэтому по свежей памяти попробую хотя бы в общих чертах описать процесс запуска.



Монтаж

По сути, установка описал на Официальный веб-сайт .

Я предполагаю, что у вас уже установлен PHP версии 5.3 или выше.

Поэтому описываю только остальное (на примере FreeBSD):

  1. Установите необходимые библиотеки для PHP из портов: Это можно сделать отдельно:
    • php5-pcntl
        
        
        
        
        
        
        
        
        
        
        
        
         

      # cd /usr/ports/devel/php5-pcntl # make install clean

    • php5-шмоп

      # cd /usr/ports/devel/php5-shmop # make install clean

    • php5-сокеты

      # cd /usr/ports/net/php5-sockets # make install clean

    или используя порт расширений php5:

    # cd /usr/ports/lang/php5-extensions # make config

    Установите флажки напротив PCNTL, SHMOP и SOCKETS и установите:

    # make install clean

    При втором подходе вы можете получить ошибку о том, что порт расширений php5 уже установлен.

    Однако сами библиотеки установятся нормально.

  2. Установить пекл-эйо :

    # cd /usr/ports/devel/pecl-eio # make install clean

  3. Установить pecl-событие :

    # cd /usr/ports/devel/pecl-event # make install clean

  4. Если git еще не установлен, установите (опции менять не нужно):

    # cd /usr/ports/devel/git # make install clean

  5. Установите phpDaemon, как указано на сайте:

    # cd /usr/local # git clone git://github.com/kakserpom/phpdaemon.git # chmod +x phpdaemon/bin/phpd # ln -s /usr/local/phpdaemon/bin/phpd /usr/bin/phpd

В принципе сама установка завершена.

Теперь стоит попробовать запустить первое приложение.

Для этого возьмем пример из комплекта — exampleWebSocket. Для этого вам необходимо прописать конфигурацию нашего WebSocket-сервера в файле

/usr/local/phpdaemon/conf/phpd.conf

:

user www; group www; max-workers 8; min-workers 1; start-workers 1; max-idle 0; Pool:Servers\WebSocket { enable 1; listen " tcp://0.0.0.0 "; listen-port 8047; privileged; } ExampleWebSocket {}

Теперь попробуем запустить наш сервер:

# phpd start

Все должно пройти нормально и в логах (/var/log/phpdaemon.log) мы должны увидеть что-то вроде следующего:

M#7964 \PHPDaemon\Core\Pool:Servers\WebSocket up. M#7964 \PHPDaemon\Core\Pool:\PHPDaemon\Servers\WebSocket\Pool up. W#7966 \PHPDaemon\Examples\ExampleWebSocket up. Spawning 1 worker(s) W#7967 \PHPDaemon\Examples\ExampleWebSocket up.



Написание первого приложения

Я хотел бы предложить, помимо идущего в комплекте, еще один пример WebSocket-приложения.

Я думаю, что лишний пример никогда не повредит человеку, понимающему что-то новое.

Сразу стоит отметить, что на данный момент официальная документация сильно устарела.

Разработчик обещает исправить это в будущем.

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

Так:

  1. Создайте новый файл в папке PHPDaemon/Applications под названием MyWebSocket.php со следующим кодом:

    <Эphp namespace PHPDaemon\Applications; class MyWebSocket extends \PHPDaemon\Core\AppInstance {

Теги: #websocket #phpdaemon #разработка веб-сайтов
Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.