2017-03-09 38 views
0

我試圖將WebSocket客戶端(公司Node.JS服務器)連接到雲服務器,但超時(連接ETIMEDOUT錯誤)。除Web瀏覽器外,WebSocket客戶端無法通過公司代理連接到雲服務器! (ETIMEDOUT)

我不確定哪些需要配置... Linux,Node.JS或WebSocket客戶端?

我已經爲Linux(導出代理/ https_proxy)和Node.JS(npm config set proxy/https_proxy)配置了代理,但問題仍然存在!

我正在使用在https://npmjs.com中找到的ws庫,並且在沒有任何其他選項(除了設置端口)的情況下實現它。

有什麼建議嗎?

編輯:順便說一句,在web瀏覽器中正常工作。

回答

1

節點不會自動使用任何形式的配置通過代理進行HTTP請求 - 即節點不讀取PROXYHTTPS_PROXY環境變量。 npm config set proxy只有影響npm本身。

換句話說,節點程序總是試圖直接訪問服務器。看起來您的網絡需要通過代理進行HTTP請求,而直接連接正在悄悄丟棄。

如果您希望程序通過代理髮出HTTP請求,則必須手動執行此操作。 http-proxy-agent模塊可以幫助你做到這一點。

+0

Chrome的WebSocket實現是否自動使用代理?我會嘗試你的建議。謝謝。 – Vic

+0

是的,Chrome的WebSockets將使用與普通HTTP請求相同的代理服務器。 – josh3736

+0

愚蠢的問題 - 但WebSocket以任何方式與HTTP協議相關? – Vic

相關問題