节点代理networking套接字如何检查

我使用下面的模块,它适用于反向代理https://github.com/nodejitsu/node-http-proxy目前我已经使用下面的代码示例

httpProxy.createServer({ target: 'ws://localhost:9014', ws: true }).listen(8014); 

我的问题是我如何检查/模拟 websockets工作? 任何testing将有帮助…

为了响应OP的浏览器testing请求,我修改了我的原始解决scheme,将HTTP和WSstream量代理到一个服务器,在该服务器上提供index.html文件。 然后这个文件通过WebSocket连接浏览器到代理服务器,代理服务器代理主服务器。 在主服务器的浏览器文档上打印一条简单的消息。

所以没有必要复制/粘贴任何东西,我用完整的指令创build了这个回购: https : //github.com/caasjj/httpproxy.git

这里是其他人想要在这里查看的代码。 要运行整个过程,请创build两个服务器文件和index.html文件,使用node proxyreceiver.jsnode proxyserver.js启动服务器,然后导航到localhost:8014/index.html

proxyserver.js ):

 var httpProxy = require('http-proxy'); var http = require('http'); var proxy = new httpProxy.createProxyServer({ target: { host: 'localhost', port: 9014 } }); var proxyServer = http.createServer(function (req, res) { proxy.web(req, res); }); // // Listen to the `upgrade` event and proxy the // WebSocket requests as well. // proxyServer.on('upgrade', function (req, socket, head) { proxy.ws(req, socket, head); }); proxyServer.listen(8014); 

proxyreceiver.js ):

 var app = require('http').createServer(handler) var io = require('socket.io')(app); var fs = require('fs'); app.listen(9014); function handler (req, res) { res.writeHead(200); fs.readFile('index.html', function(err, data){ res.end(data); }) } io.on('connection', function (socket) { socket.emit('data', { message: 'Hello World!' }); socket.on('resp', function(msg) { console.log('Got message: ', msg); }); }); 

index.html ):

 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Web Socket Proxy Test</title> <script src="https://cdn.socket.io/socket.io-1.3.5.js"></script> <script> var socket = io('http://localhost:8014'); var p = document.createElement("p") socket.on('data', function (data) { console.log('Got', data); p.innerHTML = "Received:" + data.message; document.body.appendChild(p); }); </script> </head> <body> <h1>Test ProxyServer</h1> </body> </html> 

最好的testing方法是创build一个客户端来连接它。 周围有很多ws模块。 或者你可以使用这个: https : //www.websocket.org/echo.html只需把你的url,并testing它。