2017-03-09 36 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

相关问题