Я пытаюсь получить node-http-proxy с socket.io для работы, но он всегда возвращается к xhr, websockets не будет работать, хотя я подключаюсь к событию обновления, как описано в документах node-http-proxy.node-http-proxy socket.io websocket connection
var httpProxy = require ("http-proxy");
var server = httpProxy.createServer (function (req, res, proxy) {
var buffer = httpProxy.buffer (req);
proxy.proxyRequest (req, res, {
host : "localhost",
port : 8001,
buffer : buffer
});
});
server.listen (80);
server.on('upgrade', function (req, socket, head) {
server.proxy.proxyWebSocketRequest(req, socket, head, { host : "localhost", port : 8001 });
});
приложение явно работает на локальном хосте: 8001 и, если я разрешу все методы транспорта будет работать нормально, как он использует XHR следует. Если бы я заставить его использовать WebSockets светлячок будет сказать
Firefox can't establish a connection to the server at ws://localhost/socket.io/1/websocket/cNp5J80KAWkXqjE6OZOt. @ http://localhost/socket.io/socket.io.js:2371
Только с помощью метода по умолчанию
httpProxy.createServer (8001, "localhost").listen (80);
результаты в одной и той же ошибки.
Вам не один и тот же код на всех, как я ... Можете ли вы связать документы, где вы нашли этот код ? Тем временем вы можете посмотреть мой код в [этот ответ] (http://stackoverflow.com/questions/15411042/how-to-run-node-js-app-on-port-80-using-http-proxy/15427378 # 15427378) Это работает для меня. Если вы используете его только с одним доменом, операторы switch могут быть удалены. –
Я получил код отсюда: https://github.com/nodejitsu/node-http-proxy#proxying-websockets (строка буфера, в которой у меня была остаточная часть эксперимента, я удалил ее сейчас: /) С ваш код у меня все еще такая же проблема. Могут ли быть проблемы с версиями? Я запускаю node-http-proxy 0.10.0, socket.io 0.9.13 и узел 0.10.0. – tom