2013-04-17 2 views
0

Я пытаюсь расширить существующую веб-страницу (NGINX + PHP5 + MySQL) с API реального времени, который передает некоторые дополнительные данные (например, чат на странице).Используйте Socket.io и Node.js на существующей странице (с nginx)?

После прохождения некоторых автономных тестов сценариев и т. Д. У меня на самом деле уже есть проблемы, чтобы настроить простой пример чата: Socket.io не хочет работать, по-видимому, из-за зависимостей.

Я пытаюсь использовать NodeJS/Socket.io только как альтернативу fdajax - я никогда не собирался строить всю свою (уже существующую) страницу на узлах. Итак, мой главный вопрос в том, как я могу «реализовать» эти две библиотеки, и до сих пор делают их работу (даже если socket.io.js разве поставляется nodejs)

Моя текущая ошибка ReferenceError: require is not defined и ReferenceError: io is not defined при включении socket.io.js. По-видимому, причина в том, что функция require(), вероятно, не работает должным образом, так как - ну, nodejs не доставляет всю страницу, но PHP делает (так, я думаю, весь материал require() отсутствует).

Кто-нибудь знает, как я могу получить socket.io, если у вас есть nodejs, доставляющий всю страницу, но вместо этого используя уже существующую настройку NGINX + PHP?

Я пробовал пару вещей, но пока не нашел хорошего намека. Цель состоит в том, чтобы просто включить socket.io.js (и другие необходимые вещи), подключиться к веб-серверу nodejs по указанному порту (8080 или что-то еще), а затем написать код.

Спасибо за помощь.

+0

Вы можете попытаться иметь PHP пинг nodejs в случае требуется обновление и до сих пор бизнес-логику в PHP (так что socket.io и остальное - всего лишь механизм доставки). Или попробуйте исследовать http://socketo.me –

ответ

0

Вот полноценный пример из другого ответа/вопросаhttps://stackoverflow.com/a/14709236/1489655


Вы можете настроить прокси-сервер для WebSocket трафика.

tcp { 
    upstream websockets { 
     ## node processes 
     server 127.0.0.1:8001; 
     server 127.0.0.1:8002; 
     server 127.0.0.1:8003; 
     server 127.0.0.1:8004; 

     check interval=3000 rise=2 fall=5 timeout=1000; 
    } 

    server { 
     listen 127.0.0.1:80; 
     server_name _; 

     tcp_nodelay on; 
     proxy_pass websockets; 
    } 
} 

Источник: http://www.letseehere.com/reverse-proxy-web-sockets

Это позволит вам подключиться к Socket.io через

var socket = new io.Socket('ws://localhost'); 
Смежные вопросы