代理单个“proxyServer”到多个目标的websocket
问题描述:
我正在开发一个nodeJS websocket代理服务器。用例是当websocket请求到来时,我将检查它的凭据,添加新的标题,然后基于它的组(来自用户标识)将websocket连接重定向到其目标webscoket服务器。 我发现大部分软件包(比如node-http-proxy)都支持单个目标。有支持多个目标的包吗?代理单个“proxyServer”到多个目标的websocket
答
从节点的HTTP代理部分的自述,“设置一个独立的代理服务器自定义服务器的逻辑”:
var server = http.createServer(function(req, res) {
// You can define here your custom logic to handle the request
// and then proxy the request.
proxy.web(req, res, { target: 'http://127.0.0.1:5060' });
});
因此,你应该能够在回调添加您的决策代码功能,然后用您确定的target
拨打电话proxy.web()
。
它的工作原理。我结束使用: server.on('upgrade',function(req,socket,head)proxy.ws(req,socket,head,{target:'ws://echo.websocket.org',changeOrigin :true,ws:true},function(e){console.log(e)}); }); }); – Conrad