首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >node-http-proxy socket.io websocket连接

node-http-proxy socket.io websocket连接
EN

Stack Overflow用户
提问于 2013-03-21 22:13:06
回答 2查看 3.5K关注 0票数 2

我正在尝试使用socket.io让node-http-proxy工作,但它总是返回到xhr,websocket将不会工作,尽管我正在按照node-http-proxy文档中的描述连接到升级事件。

代码语言:javascript
复制
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会说

代码语言:javascript
复制
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

只使用默认方法

代码语言:javascript
复制
httpProxy.createServer (8001, "localhost").listen (80);

将导致相同的错误。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-19 00:03:52

使用node-http-proxy代理websockets似乎在Node 0.10上被破坏了。这里有一个拉取请求,试图修复它,但请参阅我的评论:修复也不完全有效。

https://github.com/nodejitsu/node-http-proxy/pull/402

票数 4
EN

Stack Overflow用户

发布于 2014-01-26 20:25:37

我目前使用的是(最新的?v1.0.1) node-http-proxy和我发现,在Node v0.10.20上进行了调整(见下文)后,Websockets确实可以可靠地工作。默认情况下,node-http-proxy似乎支持xhr轮询,同时丢弃websocket连接。

在'examples‘中,我添加了'ws’标志true

代码语言:javascript
复制
var http = require('http'),
    httpProxy = require('../../lib/http-proxy');

httpProxy.createServer({
  target:'http://somehost.tld:5000',
  ws : true //added Websockets Flag TRUE
}).listen(80);//arbitrary port
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15549945

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档