Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как связать Node.Js и PHP (WebSockets)

Tom Riddle Ученик (158), закрыт 5 лет назад
Интересует вопрос, касательно сокетов. Есть сайт, который разрабатывался на PHP/MySQL.Интересно узнать, есть ли возможность прикрутить к нему socket.io. Как это будет выглядеть в теории. Устанавливаем ноду на сервер со всеми зависимостями. Пишем скрипт на NodeJs, на котором мы прослушиваем входящие сообщения. Допустим есть скрипт. Стандартный, который дается во многих документациях. Как можно организовать переписку между пользователями, через данный скрипт. Мы поставим на прослушку нужный нам порт. Есть класс, для обработки переписки между пользователями. Он, соответственно, написан на PHP. Связь с клиентом производится через long polling. Но это гиблое дело, поскольку быстро положит сервер спать. Как из данного класса можно отправить инфу, что какому то пользователю пришло новое сообщение, и если этот самый пользователь подключен к сокету, отправить сообщение клиенту, что имеется таковое обновление. Если такое можно замутить, то вкратце опишите каким образом. Через curl или ещё как то. сокет на ноде это отдельный процесс на сервере. Как ему отправить данные из скрипта PHP? Переписывать сайт с PHP на ноду нет возможности. Поскольку с серверным js мало знаком. В инете везде мануалы по сокетам на ноде, если сам сайт весь на Node написан. Я не хочу использовать его для всего сайта. Нужен отдельный модуль, для переписки пользователей. сокеты на php? phpdemon, ratchet использовать тоже не хочу. Рассматриваю только Node.Js
Лучший ответ
Miku Hatsune Мудрец (11188) 5 лет назад
Не, ну. Ничего не мешает ноде обращаться к бд напрямую, если она лежит на одном сервере с сайтом
Просто пусть смотрит в бд, а при обновлении оной, пусть меняется пакетами с клиентом.
забань плизМыслитель (6203) 5 лет назад
даже не так.
при появлении какого-то события -> кидаем его на сокет сервер, котрый в свою очередь добавляет нужные данные в бд, а нужные отправляет другим клиентам.
Miku Hatsune Мудрец (11188) Ну да. Проблема во всей этой фигне заключается в правильной идентификации клиента, что, печально, socket.io не сильно этому помогает, ох
Остальные ответы
̑̈☣̑̋̑̎̑̈ ☠̤̥̤̭̤ ☢J̯̤ͣͮͣ̐̈ Высший разум (160375) 5 лет назад
Да как бы проблем в скрещивании не каких нет даже прилежании я так полагаю может работать сразу несколько интерпретаторов ещё можно в этот звериниц и Python закинуть некто не запрещает вроде И документации на эту тему полным полно другое дело это нежелание её читать :):):) Как я понял у тебя сервера разные а скорей всего ты просто тупо пытаешься парусить нодом php сайт ну всё в твоих руках некто не запрещал

иии Профи (538) 5 лет назад
Так не сделаешь.
Вообще, все это чушь.
Через ajax обращайся, и все. Лови Сообщения по кол-ву.
Т. е сравнивай кол-во сообщений каждую секунду. Если добавлено сообщение, то выводи.
У тебя что там, что там идёт обращение к серверу. Что там, что там, идёт одинаковый запрос в базу. Возможно чуть быстрее. Но лично я не видел разницы вообще.
Miku HatsuneМудрец (11188) 5 лет назад
Для реал-тайм веб-приложения нет реализации хуже этой
Tom RiddleУченик (158) 5 лет назад
Это самый древний и высоконагруженный способ для веб приложений в 500+ клиентов. Это быстро нагрузит сервер. Многие хостеры посчитают данный алгоритм реализации как псевдо ddos - атака. Этого я как раз и хотел избежать
Михаил Калашников Ученик (97) 5 лет назад
лично я не понимаю в сокетах, а именно веб сокетах. Но тебе видимо уже помогли, смотря верхним ответам. Но есть совет драгоценный. Любой супер мега пупер с большой зарплатой программист читает офф. документацию. Почитай ее, я уверен что там есть инфа про это.
dmitry.v.18 Ученик (175) 5 лет назад
нет) не выйдет, не протзойдет handshake
Похожие вопросы