2

node-http-proxy を socket.io で動作させようとしていますが、常に xhr にフォールバックし、websockets は動作しませんが、node-http-proxy で説明されているようにアップグレード イベントに接続しています。ドキュメント。

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 });
});

アプリは明らかに localhost:8001 で実行されます。すべての転送方法を許可すると、xhrs を使用するため正常に動作します。強制的にwebsocketsの使用を強制すると、Firefoxは言う

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);

同じエラーが発生します。

4

2 に答える 2