2017-03-09 18 views
0

WebSocketクライアント(法人Node.JSサーバー)をクラウドサーバーに接続しようとしましたが、タイムアウトしました(ETIMEDOUTエラーを接続しています)。WebSocketクライアントは、Webブラウザ以外の企業プロキシ経由でクラウドサーバーに接続できません。 (ETIMEDOUT)

Linux、Node.JS、またはWebSocketクライアントの設定が必要かどうかわかりません。

私はすでにLinux用のプロキシ(export proxy/https_proxy)とNode.JS(npm config set proxy/https_proxy)用にプロキシを設定していますが、問題は解決しません。

https://npmjs.comにあるwsライブラリを使用しています。ポート設定以外のオプションは一切ありません。

アドバイスはありますか?

EDIT:Webブラウザでうまく動作します。

答えて

1

ノードは、プロキシ経由でHTTP要求を行うために自動的に構成を使用しません。つまり、ノードはPROXYまたはHTTPS_PROXYという環境変数を読み取らないためです。 npm config set proxyはnpm自体に影響します。

つまり、ノードプログラムは常にサーバーに直接アクセスしようとします。あなたのネットワークはプロキシを経由するHTTP要求を必要とし、直接接続は黙って削除されているようです。

プログラムでプロキシを介してHTTP要求を行う場合は、手動で行う必要があります。 http-proxy-agentモジュールでこれを行うことができます。

+0

ChromeのWebSocket実装は自動的にプロキシを使用しますか?私はあなたの提案を試してみます。ありがとう。 – Vic

+0

はい、Chromeのウェブソケットは、通常のHTTPリクエストと同じプロキシサーバーを使用します。 – josh3736

+0

愚かな質問ですが、WebSocketはHTTPプロトコルに関係していますか? – Vic

関連する問題