注册特殊URI方案的原因是什么:“ws”和“wss”? 我简要地阅读了规范,并没有找到任何关于这种变化的理由。
https://tools.ietf.org/html/rfc6455#section-11.1
WebSocket客户端发送特殊标头(Connection: Upgrade
,Upgrade: websocket
),可以相对轻松地确定这是否是正常的HTTP请求(GET
,POST
...等)或这是WebSocket连接请求。
为什么WebSockets无法使用“http”和“https”方案?
答案 0 :(得分:1)
我不在董事会或任何事情上,但这里有任何2¢......:
协议的握手当前使用HTTP(S)进行连接建立,但这就是HTTP的参与。
未来版本很可能使用ALPN等技术扩展握手可能性。
通过使用URI方案ws://...
和wss://...
,握手与URI分离,允许将来更改以更少的干扰发生。
答案 1 :(得分:0)
他们出于架构清晰的目的使用它,似乎没有技术限制,为什么您不能仅使用http
处理websocket连接。
请注意,用于处理诸如Paho之类的websocket连接的javascript客户端库,仅通过http协议来处理websocket,甚至如果您显式地提供以ws
协议为前缀的主机,甚至会失败-这很简单展示代码示例:
// Create a client instance client = new Paho.MQTT.Client( location.hostname, Number(location.port), "clientId" );