node.js node-http-proxy没有收到预告片

时间:2016-01-13 14:38:43

标签: node.js node-http-proxy

我在预订节点中添加了一个预告片,我似乎无法将预告片作为消息的一部分收到。我想用它将定时信息发送回我在Node中编写的负载均衡器,这样就可以监控请求是否在特定工作人员中长时间排队。

我尝试使用一个基本的应用程序来让它首先运行,我已经从addTrailers的文档中获取了:

var http = require("http");

var server = http.createServer(function (req, res) {
     var fileData = "Hello World!";
     res.writeHead(200, { 'Content-Type': 'text/plain',
     'Trailer': 'my-trailer' });
     res.write(fileData);
     res.write("\r\n");
     res.addTrailers({'my-trailer': 'test'});
     res.end();
});
server.listen(12345);

我在负载均衡器中使用node-http-proxy并且它没有收到预告片,Charles Proxy没有显示它们,也没有卷曲7.35。但是,wireshark会在数据包末尾显示数据:

c
Hello World!
2


0
my-trailer: test

有没有人知道你要做什么才能让Node从邮件解析预告片而不是丢弃它?

1 个答案:

答案 0 :(得分:0)

经过深入调查,直到end发出end事件才设置预告片(我猜这是有道理的)。 node-http-proxy没有记录这一点,但查看它发出的代码。

因此我们可以为proxy = httpProxy.createProxyServer(); proxy.on("end", function(req, res, proxyRes){ console.log(proxyRes.trailers); }); proxy.listen(8000); 事件

设置处理程序
{ 'x-worker-duration': '7.397' }

我的预告片在那里!

{{1}}