gpt4 book ai didi

http - node.js 中的 TCP/HTTP 代理

转载 作者:可可西里 更新时间:2023-11-01 02:57:20 25 4
gpt4 key购买 nike

我想在 node.js 中创建一个简单的 TCP 和 HTTP 代理 - 例如,代理监听端口 8080 并将所有 TCP 请求重定向到 127.0.0.1:8181 和所有 HTTP请求 127.0.0.0.1:8282

我在 Google 上找到了一个简单的 HTTP 代理代码片段,共 20 行代码:

var http = require('http');

http.createServer(function(request, response) {
var proxy = http.createClient(80, request.headers['host'])
var proxy_request = proxy.request(request.method, request.url, request.headers);
proxy_request.addListener('response', function (proxy_response) {
proxy_response.addListener('data', function(chunk) {
response.write(chunk, 'binary');
});
proxy_response.addListener('end', function() {
response.end();
});
response.writeHead(proxy_response.statusCode, proxy_response.headers);
});
request.addListener('data', function(chunk) {
proxy_request.write(chunk, 'binary');
});
request.addListener('end', function() {
proxy_request.end();
});
}).listen(8080);

所以基本上我需要监听 8080 上的任何类型的请求,猜测它是 TCP 还是 HTTP,然后将请求代理到正确的路径。使用上面的代码片段有什么技巧吗?

谢谢

最佳答案

nodejitsu开源了一个node-http-proxy我想你试试吧。它已记录在案,正在积极开发。

关于http - node.js 中的 TCP/HTTP 代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6636143/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com