PhpDaemon webSockets как писать в базу данных?

evzah

Новичок
Здравствуйте, помогите разобраться, ws приложение работает, но как, например, те же комментарии записывать в базу данных? в голову приходит только обращаться к модели в проекте, которая перешлет данные в БД.. а как правильно?
 

WMix

герр M:)ller
Партнер клуба
а чем тебе не нравиться обрещение к model
 

evzah

Новичок
первый раз с подобной задачей столкнулся, хочу чтоб все было правильно, ищу варианты)) ну значит сделаю так) спасибо за ответ
 

fixxxer

К.О.
Партнер клуба
WMix
иногда лучше жевать

evzah
phpdaemon работает в рамках libevent fsm, там нельзя делать блокирующие операции.
то есть конечно можно, но на время записи комментариев перестанут обрабатываться все соединения что тебе нужно вряд ли.

соответственно два варианта
1) смотрим сюда, видим mysql-клиент и пользуемся им
2) если хочется оставить все модели моделями и не лезть напрямую в базу - у обычного синхронного приложения добавляем нужные api-вызовы и дергаем через http-клиент (есть по той же ссылке).
 

evzah

Новичок
fixxxer, спасибо)) второй вариант кажется кажется удобней, то есть я смогу POSTом отправить данные из ws приложения, правильно понял?
 

WMix

герр M:)ller
Партнер клуба
я не использовал phpdaemon, и мне не хотелось бы делить модели в рамках одного приложения... и curl для запроса в базу звучит дико если чесно...
в чем фишка libevent?
 

WMix

герр M:)ller
Партнер клуба
те. из особой любви к процессору?
я правильно понимаю что libevent это разговор о web-sockets .. в смысле коммуникация с процесом
 

cDLEON

Онанист РНРСlub
те. из особой любви к процессору?
я правильно понимаю что libevent это разговор о web-sockets .. в смысле коммуникация с процесом
А как мусье собирается организовывать постоянные соединения?
Библиотека libevent написана Нильсом Провосом (Niels Provos) для упрощения и унификации поддержки механизма асинхронного неблокирующего ввода/вывода и механизма оповещения о событиях с помощью выполнения обратного вызова (callback) функции при наступлении заданного события для дескриптора файла или при достижении заданного таймаута (timeout). Библиотека является свободно распространяемой на условиях лицензии BSD.
 

fixxxer

К.О.
Партнер клуба
те. из особой любви к процессору?
я правильно понимаю что libevent это разговор о web-sockets .. в смысле коммуникация с процесом
смысл в постоянных соединениях, неважно веб сокет или просто tcp

для того чтобы держать 1000 соединений в классической синхронной модели "одно соединение-1 процесс" тебе понадобится 1000 процессов php
с libevent достаточно одного
 

uid

Новичок
смысл в постоянных соединениях, неважно веб сокет или просто tcp

для того чтобы держать 1000 соединений в классической синхронной модели "одно соединение-1 процесс" тебе понадобится 1000 процессов php
с libevent достаточно одного
процессов или потоков?
 

WMix

герр M:)ller
Партнер клуба
cDLEON
в этом то вопрос, задачи разные одно это зокеты, а другое это серверные процессы,. я не обратил внимание на зокеты
зокеты штучка легкая, прочел отправил .. в голову бы не пришло грузить сложными запросами,.. но знание что именно там существует опасность блокировки не помешает...
 

WMix

герр M:)ller
Партнер клуба
смысл в постоянных соединениях, неважно веб сокет или просто tcp
для того чтобы держать 1000 соединений в классической синхронной модели "одно соединение-1 процесс" тебе понадобится 1000 процессов php
с libevent достаточно одного
да спасибо. приблизительно так я и понимал....
 

fixxxer

К.О.
Партнер клуба
uid
как правило, процессов. Если запустить какую-то экзотику типа apache-worker mpm + mod_php, будут треды, что лучше, но немного. Да и сам апач архитектурно не рассчитан на поддержание кучи постоянных соединений. Речь разумеется о тредах на уровне sapi, сам по себе php не предоставляет средств работы с тредами
 

uid

Новичок
fixxxer
А php-fpm? И вообще, где можно почитать, как работают решения наподобие phpdaemon? Интересует в первую очередь многопоточная модель, а не асинхронная.
 

WMix

герр M:)ller
Партнер клуба
fixxxer
те. это даже глупо не использовать phpdaemon при работе с зокетами?... ибо в этом и есть фишечка, что работы делать не много так зачем же процессы размножать...
 

MiksIr

miksir@home:~$
fixxxer
те. это даже глупо не использовать phpdaemon при работе с зокетами?... ибо в этом и есть фишечка, что работы делать не много так зачем же процессы размножать...
Зависит от задач. Если нужно держать много соединений и быстро что-то на них отвечать - то стоит использовать. Чем сложнее логика скрипта, больше всяких "шаблоничков" и т.п., тем быстрее теряется преимущества и на этом фоне вылезают недостатки (в том числе и сложность отладки и более высокие требования к квалификации).
 

MiksIr

miksir@home:~$
fixxxer
А php-fpm? И вообще, где можно почитать, как работают решения наподобие phpdaemon? Интересует в первую очередь многопоточная модель, а не асинхронная.
Там fixxxer выше ссылочку дал же, вполне себе все описано. phpdaemon использует libevent, а libevent использует тот механизм, который доступен в ОС. Как правило epoll для linux и kqueue для freebsd.
 
Сверху