我在预订节点中添加了一个预告片,我似乎无法将预告片作为消息的一部分收到。我想用它将定时信息发送回我在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从邮件解析预告片而不是丢弃它?
答案 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}}