簡體   English   中英

存在代理時Node.js套接字掛起

[英]Node.js socket hang up when agent is present

我有以下設置:客戶端=>代理服務器=>原始服務器

我分別將以下Node.js庫用於這些組件:isomorphic-fetch => http-proxy => http

這是兩個文件的設置要點,每個服務器一個,客戶端一個: https : //gist.github.com/headquarters/850cbb199ff397c6da56fb8d86113a7e要在本地運行此文件,請在一個shell和node fetch.js運行node server.js 。在另一個shell中的node fetch.js

在服務器運行的情況下,如果我在瀏覽器中轉到http://localhost:8818 ,則會得到示例響應{"a":"b"} ,因此可以正常工作。 如果我轉到http://localhost:9818 ,我也會收到該響應,因此代理似乎工作正常。 但是,如果我運行包含HTTP代理的DEBUG=* node fetch.js ,請求將失敗(請參見https://gist.github.com/headquarters/850cbb199ff397c6da56fb8d86113a7e#file-failure-txt的輸出)。

如果沒有agent屬性,則fetch命令在命令行上可以正常工作。 如何調試此套接字掛起錯誤?

事實證明,我沒有足夠仔細地閱讀https-proxy-agent文檔。 這行有點An HTTP(s) proxy http.Agent implementation for HTTPS困惑: An HTTP(s) proxy http.Agent implementation for HTTPS - PROXY本身可以是HTTP或HTTPS,但是對於這種代理代理而言,原始服務器必須是HTTPS。 對於HTTP原始服務器,我必須使用http-proxy-agent 因此,套接字掛起可能來自https.Agent嘗試訪問HTTP端點。 當我切換到http-proxy-agent時,它起作用了。

暫無
暫無

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

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