有可能在http上使用wss协议吗?我在一个论坛上读到,ws可以使用http,但ws只能使用https?这是真的吗?
因为我正试图在本地主机上的wamp上测试它,但无法使用
ws
告诉WebSocket客户端库使用http
连接到WebSocket服务器。同样,wss
告诉WebSocket客户端库使用https
连接到WebSocket服务器。仅此而已"ws协议";以及";wss协议";都是奇怪的词"WebSocket协议";是正确的词。WebSocket协议既可以用于普通HTTP连接(http
),也可以用于安全HTTP连接(https
)。
请注意,WebSocket客户端和WebSocket服务器之间的通信从一个正常的HTTP协议开始。为了启动WebSocket通信,WebSocket客户端向WebSocket服务器发送如下请求(这是RFC 6455,1.2的摘录。协议概述)。
GET /chat HTTP/1.1
Host: server.example.com
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
Origin: http://example.com
Sec-WebSocket-Protocol: chat, superchat
Sec-WebSocket-Version: 13
正如您所看到的,这是一个普通的HTTPGET
请求。WebSocket服务器可以在不安全端口(默认为http
,80)或安全端口(缺省为https
443)上等待此类请求。这取决于WebSocket服务器。
如果您正在使用的WebSocket服务器正在一个不安全的端口上等待请求,请将ws
传递给正在使用的WebServicet客户端库。否则,如果WebSocket服务器正在安全端口上等待请求,请将wss
传递给WebSocket客户端库。
WebSocket客户端库的一些实现不仅接受ws
和wss
,还接受http
和https
,只是为了方便开发人员。
"WSS on http";是个奇怪的词。另一方面;http上的WebSocket协议";以及";https上的WebSocket协议";说得通。