Доступ к NodeJS / Socket.io через PHP и cURL - PullRequest
4 голосов
/ 04 августа 2011

Я использую сервер nodejs / socket.io (v 0.7) для передачи данных веб-клиентам.Это прекрасно работает.

Чтобы расширить приложение, мне нужно запустить / влиять на socket.io поверх php.Я знаю решение, которое работает с cURL через http с http-сервером nodejs.

Одно из возможных решений - запустить сервер socket.io и http-сервер nodejs в одном и том же app.js.Клиенты подключаются и взаимодействуют с socket.io, и единственное разрешенное подключение к «отдельному» http-серверу (конечно, прослушивание на другом порту, кроме socket.io) осуществляется с 127.0.0.1 соответственно с php-сервера через cURL.*

Поскольку оба сервера находятся в одной области, http-сервер может инициировать события на сервере socket.io.

Мой вопрос: есть ли смысл в этом?Есть ли более чистое решение для запуска событий на socket.io из PHP?

Ответы [ 3 ]

1 голос
/ 04 августа 2011

Я пишу решение, которое, на мой взгляд, очень похоже на pusher API.Он использует концепцию помещения (канала).С маршрута через express я могу свернуться (через PHP) для отправки сообщений в комнату (канал).

io.sockets.in('your room').json.send('your json');

Я хотел бы открыть этот проект в будущемнадеюсь, через неделю), но, надеюсь, вы получите картину.

1 голос
/ 04 августа 2011

Я думаю, что это разумный и прямой путь; похоже, что следует соблюдать осторожность при работе с порядком выполнения, но это, вероятно, просто моя неопределенность с отображением узла.

0 голосов
/ 04 февраля 2015

socket.io с версией выше 1.3.3 (может быть старше)) вы можете вызвать событие emit, как показано ниже

//send broadcast message to all connecting clients
io.emit([message event],[your message body obj or str]);

// send to specific user
io.to([your room]).emit([message event], [your message body obj or str]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...