簡體   English   中英

node.js node-http-proxy沒有收到預告片

[英]node.js node-http-proxy not receiving trailers

我在Node的響應中添加了一個預告片,但似乎無法將預告片作為消息的一部分接收。 我想使用它將計時信息發送回我在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沒有顯示預告片,而且curl 7.35也沒有。 但是,wireshark會在數據包末尾顯示數據:

c
Hello World!
2


0
my-trailer: test

有誰知道您需要做什么才能讓Node從消息中解析預告片,而不是丟棄它?

經過深入的研究,直到http.ClientRequest發出end事件(我認為這很有意義)之后,才會設置預告片。 它沒有記錄在node-http-proxy上,而是查看它發出的代碼。

因此我們可以為end事件設置處理程序

proxy = httpProxy.createProxyServer();
proxy.on("end", function(req, res, proxyRes){
    console.log(proxyRes.trailers);
});
proxy.listen(8000);

我的拖車就在那里!

{ 'x-worker-duration': '7.397' }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM