通过 CurlAsyncHTTPClient 完成的 Tornado HTTP 请求,并不能证明 websocket_connect 使用了同一个后端。

Tornado 的 WebSocket 连接实现建立在自己的 HTTP 连接路径之上。简单的 HTTP 实现明确说明不支持代理字段。把全局异步 HTTP 客户端配置为使用 curl,并不会用 curl 的代理连接器替换这条 WebSocket 路径。

因此,传入 HTTPRequest 对象同样不是支持代理的证明。该对象可能携带所选实现并不接受的字段。请检查报错以及实际的连接实现。

如果应用需要通过代理使用 WebSocket,请选择有文档说明、支持该代理协议和认证方式的 WebSocket 连接集成。保持其生命周期和 I/O 模型与应用兼容。

代理路径建立之后,安全 WebSocket 仍然需要目标端的 TLS 及其 WebSocket 握手。一次能正常工作的普通 HTTP 请求无法验证这些后续阶段中的任何一个。

相关文章