我終於弄清楚是什麼導致了這個問題,並沒有在網上找到任何直接的答案,所以我想我會發佈一個答案(下)。無論如何,這裏的問題:使用節點的http.get函數獲取ECONNRESET響應
我有一個簡單的節點應用程序運行在端口3000上。我正在嘗試一些數據庫連接池,我想加載測試它,以確保它以我期望的方式工作。我安裝了圍攻,並試圖:
$ siege -c 10 -r 10 -b http://localhost:3000
我有一個Connection reset by peer
錯誤。於是,我就減少連接數:
$ siege -c 1 -r 1 -b http://localhost:3000
同樣的問題。我想也許這是一個圍攻問題,所以我嘗試了nperf並得到了一個ECONNRESET
錯誤。和火炮一樣。
奇怪的是我可以使用curl,telnet和網頁瀏覽器進行連接並獲得有效的響應。
我試圖在快速應用程序中記錄錯誤,但它似乎從未收到請求。我嘗試使用nettop
來監視網絡流量,但它從未使用siege或nperf顯示連接(儘管它使用了捲曲)。
我寫了一個客戶端應用程序使用nperf使用的相同方法(節點的http.get
函數)進行連接,並得到了相同的ECONNRESET
響應。
我寫了一個簡單的快速應用程序在端口3001上運行,它工作正常!我嘗試評論我的端口3000應用程序中的大部分行,所以它基本上與我的3001應用程序相同,但它仍然不起作用。我開始懷疑webpack在做一些奇怪的事情,然後終於開始意識到......見下面的答案。