Как передавать данные из node.js в php

s-prosvirnin

Новичок
Делаем игру для контакта. PHP+flash. А также node.js в качестве comet-сервера для чата и прочего. Для передачи данных я нашел 3 варианта:
1. Делать http запрос от node.js к php
2. Запустить отдельный процесс в виде php скрипта, который будет слушать данные либо по tcp-сокету либо через redis pub/sub. Причем в этом скрипте еще нужно будет инициировать фреймворк, чтобы пользоваться уже существующей архитектурой моделей.
3. Так же как и во 2 варианте, только запускать php-скрипт по cron`у.
Вопрос в том, какой лучше метод выбрать, или может есть еще какие?
 
Последнее редактирование:

Absinthe

жожо
А зачем?
Пусть имеют общий источник данных, а сбор с обоих источников предоставь серверной стороне.
 

s-prosvirnin

Новичок
На клиенте получай данные с PHP, а чат через JS с ноды грузи.
Как, интересно, можно передавать данные с php клиенту без http-запроса? Я не могу пользоваться js, только flash на клиенте.
http://socketo.me/ нафига в вашем варианте нода
Так уж решили. Рассматривали много вариантов, в том числе этот.
наоборот, можно слушать в ноде запросы от пхп
В смысле? Я знаю, что можно. Но, мне нужно получать данные в php от nodejs
 

AmdY

Пью пиво
Команда форума
s-prosvirnin, смотря какие данные, обычно достаточно взаимодейтвие через базу или сервер очередей с подпиской, гугли по теме, таких извращенцев много.
 

s-prosvirnin

Новичок
s-prosvirnin, смотря какие данные, обычно достаточно взаимодейтвие через базу или сервер очередей с подпиской, гугли по теме, таких извращенцев много.
Что гуглить? я привел 3 варианта и спрашиваю какой из них более подходящий.
 

s-prosvirnin

Новичок
Может быть через RPC или REST, как обычно
RPC не подходит, если я правильно понимаю его архитектуру(не работал с ним), т.к. нужно использовать в php уже созданную архитектуру моделей и прочего. Под 1 методом в 1 посте я как раз и имел в виду REST. Но, у меня есть сомнения, что обработка данных через php процесс будет несколько быстрее, чем REST.
 

accido

Новичок
RPC не подходит, если я правильно понимаю его архитектуру(не работал с ним), т.к. нужно использовать в php уже созданную архитектуру моделей и прочего. Под 1 методом в 1 посте я как раз и имел в виду REST. Но, у меня есть сомнения, что обработка данных через php процесс будет несколько быстрее, чем REST.
Ваш код для меня - это черный ящик, но теперь вроде понятно, что в PHP вы хотели бы собирать все данные, тогда лучше 2. Только можно ж заменить node.js на какой-нибудь сокет-демон похапешный, типа reactphp, и повторно использовать весь похапешный код. Вам же все равно придется его поднимать.
 

s-prosvirnin

Новичок
Ваш код для меня - это черный ящик, но теперь вроде понятно, что в PHP вы хотели бы собирать все данные, тогда лучше 2. Только можно ж заменить node.js на какой-нибудь сокет-демон похапешный, типа reactphp, и повторно использовать весь похапешный код. Вам же все равно придется его поднимать.
Мы обсуждали что использовать в качестве comet-сервера и остановились на node.js+tcp-sockets. Рассматривали и react.
Вам же все равно придется его поднимать.
Во 2 варианте будет только одно tcp-соединение, либо вообще по redis pub/sub данные можно передавать. А если еще добавить php-daemon какой-нибудь будет огромное количество соединений с клиентами, чего не хотелось бы делать на php. Но в любом случае, я понял, что вы советуете.
 

AmdY

Пью пиво
Команда форума
s-prosvirnin, всё зависит от того, что тебе надо. ты просто составь плюсы-минусы подходов и какая нагрузка будет на скрипт.
http запрос - самый простой, легко связывается с любым фреймворком и может работать в несколько процессов. Но дорого по ресурсам, если нагрузка большая.
Если вешать демона получишь хорошую производительность, но будут костыли для интеграции с фреймворком, плюс нужно форкать, чтобы не не работать в один поток с той же базой. Ну и в такой схеме не понятно - зачем нода.
 

s-prosvirnin

Новичок
s-prosvirnin, всё зависит от того, что тебе надо. ты просто составь плюсы-минусы подходов и какая нагрузка будет на скрипт.
http запрос - самый простой, легко связывается с любым фреймворком и может работать в несколько процессов. Но дорого по ресурсам, если нагрузка большая.
Если вешать демона получишь хорошую производительность, но будут костыли для интеграции с фреймворком, плюс нужно форкать, чтобы не не работать в один поток с той же базой. Ну и в такой схеме не понятно - зачем нода.
В принципе, я согласен с вами. Спасибо за совет.
 
Сверху