0

好吧,我就是不明白。

假设我有一些 node.js 应用程序发出一些 get/post 请求。假设我在 localhost:9050 也有一些 socks5 代理服务器。

当我使用代理卷曲网址时,一切顺利。

但是当我尝试使用 http.request 获取它时,使用 node-socksified httpAgent 将请求传递给 socks 代理,响应在接收到第一块数据后立即发出“结束”事件。

我尝试了另一个具有相同结果的代理实现。我猜它以某种方式与处理套接字的 node.js 相关联,但我只是不明白我在做什么错。

有人有同样的问题吗?

我的代码看起来像这样:

var options = ...

options.agent = new SocksAgent({
    socks_host : "127.0.0.1",
    socks_port : 9050
});

var req = http.request(options, function(res) {

    res.on("data", function(chunk) {
        console.log(chunk);
    });

    res.on("end", function() {
        console.log("end");
    });
});

req.end();
4

1 回答 1

1

此问题是由于 socks 代理实现未在节点 0.10.x 中实现对新可读流接口的支持而引起的。

我编写的两个 socks v5 客户端实现 - http-clienthttps-client支持新旧接口,即它们适用于节点 0.10.x 和 0.8.x 或更低版本。

于 2013-08-30T17:53:57.730 回答