2013-08-08 2 views
5

У меня есть сервер NodeJS-socketIO, в котором есть клиенты, которые прослушивают JS, PHP & Python. Он работает как шарм, когда связь происходит по простому каналу HTTP/WS.NodeJS - SocketIO через SSL с переносом websocket

Теперь, когда я пытаюсь обеспечить это сообщение, перенос websocket больше не работает. Он возвращается к транспорту xhr-poll (длинный опрос). Xhr-опрос по-прежнему работает для JS-клиента, но не на python, который зависит исключительно от транспорта сокетов.

вещи я пытался:

  1. На узле, используя HTTPS (с коммерческими сертификатами) вместо HTTP - Работает хорошо для обслуживания страниц через узел, но не для socketIO
  2. прокси через HAProxy (1,15 -dev19). От HTTPS (HAProxy) до HTTP (Node). Не удалось получить работу с транспортным средством Websocket, и он возвращается на xhr-опрос на JS. Python получает в рукопожатии.
  3. Прокси через STunnel (для HTTPS) -> HAProxy (прокси-сервер) -> Node (SocketIO) - это тоже не работает. Клиент Python по-прежнему получает 502 рукопожатия.
  4. Прокси через Stunnel (HTTPS) -> Node (SocketIO) - Это тоже не работает. Не уверен, что если Stunnel поддержка WebSocket прокси
  5. узла-клиента-прокси: Выдает 500 (произошла ошибка: { "код": "ECONNRESET"}) на WebSocket и возвращается к XHR-опроса

Я уверен, что это обычный вариант использования и существует решение. Было бы очень полезно помочь.

Заранее благодарен!

+0

Мы пытаемся подключить сервер node.js с socket.io от клиента python с помощью socketIO-клиента, без успеха. Можете ли вы поделиться некоторыми фрагментами кода из соединения? – user2503775

+0

Если вы используете SocketIO 1.x, клиент python не будет работать. Попробуйте использовать SocketIO 0.9 с клиентом python и дайте мне знать, если он все еще не работает. Автор python client socketIO-client работает над обновлением, чтобы сопоставить его с версией 1.x. –

+0

Спасибо. Это была моя проблема. – user2503775

ответ

1

Мое дело похоже редкое. Я построил всю эту среду на экземпляре EC2 на базе Amazon Linux. Поскольку почти все пакеты yum не обновлены, мне пришлось установить почти все пакеты yum из исходного кода. Делая так, я мог пропустить конфигурацию без изменений/добавлена. Или HAProxy, требуемый lib, мог быть не последним.

В любом случае, я попытался создать среду снова на экземпляре EC2 на ubuntu 12.04. HAProxy работал как шарм с небольшими настройками конфигурации. Теперь я могу подключить свой SocketIO-сервер от JS, Python & PHP через SSL без каких-либо проблем. Я также могу создать защищенный TCP Amazon ELB, который прослушивает 443 и прокси-сервер его на нестандартный порт (8xxx).

Дайте мне знать, если кто-либо еще столкнется с подобной проблемой, я буду рад помочь!

+0

Можете ли вы поделиться своей конфигурацией HAProxy? также вы используете nginx поверх HA Proxy? Если да, то как обеспечить трафик для nginx. –

+0

@ RanaDeep Извините за такой поздний ответ.Нет, я не использую Nginx с HAProxy. Если вам все еще нужна конфигурация [HAProxy config] (https://gist.github.com/karthikj/8193588) –

Смежные вопросы