在 websocket 服务器中处理 CONNECT 请求

Posted

技术标签:

【中文标题】在 websocket 服务器中处理 CONNECT 请求【英文标题】:handle CONNECT requests in a websocket server 【发布时间】:2012-01-09 03:17:44 【问题描述】:

我的 websocket 服务器在没有代理的情况下侦听端口 8080。 大多数情况下,我都会收到带有 Upgrade Websocket 标头的请求,并且工作正常。

有时我会收到 HTTP CONNECT 请求。 这是一个有效的请求吗? 是不是表示客户端和服务器之间有代理服务器? 我的服务器应该如何响应 CONNECT 请求?

谢谢

【问题讨论】:

【参考方案1】:

您收到 CONNECT 请求是因为您可能已将浏览器配置为使用代理。如果您指示浏览器使用本地 IP 地址上的端口 8080,它将假定存在代理,这意味着当您请求安全连接时,浏览器会以 CONNECT 进行引导。

您需要向您的服务器添加对 SSL/TLS 隧道的支持以处理此问题。

【讨论】:

以上是关于在 websocket 服务器中处理 CONNECT 请求的主要内容,如果未能解决你的问题,请参考以下文章

netty系列之:分离websocket处理器

在 asp.net 核心服务器中处理关闭的 websocket 连接

Websockets 在客户端发送多个事件和多个事件处理程序

处理 WebSocket 服务器端

Python 服务器 - 处理 WebSocket.close()

Nginx 为 WebSocket 处理 SSL