我读到(安全)Websocket正在使用与HTTP(S)协议相同的端口。 但是,我的PHP Websocket服务器接收来自客户端的加密握手,我正在收听12345端口上的打开连接。
我的系统通过非安全的websocket运行良好,但我需要添加安全功能,我不明白为什么我收到这些加密的握手。由于OSI模型,这对我来说是透明的......
如果我配置apache来激活SSL引擎并监听12345端口。我不能再为我的PHP Websocket服务器使用这个端口,因为它将处于“已经使用过”的状态......或者我已经忘记了某些东西......
我输了:(
编辑:
这是我的安全websocket标头(使用wss://
):
Request URL:wss://localhost:12345/
这里是我的简单websocket标题(使用ws://
):
Request URL:ws://localhost:12345/
Request Method:GET
Status Code:101 Switching Protocols
Request Headersview source
Connection:Upgrade
Host:localhost:12345
Origin:http://localhost
Sec-WebSocket-Extensions:x-webkit-deflate-frame
Sec-WebSocket-Key:wovBDvKiKdy/+0Y2BQPr9w==
Sec-WebSocket-Version:13
Upgrade:websocket
(Key3):00:00:00:00:00:00:00:00
Response Headersview source
Connection:Upgrade
Sec-WebSocket-Accept:1ao7ngQG4LAa3JxFibyvoocbSAM=
Upgrade:websocket
(Challenge Response):00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
为什么没有安全连接我会得到更多?
答案 0 :(得分:2)
我读过(安全)Websocket正在使用与HTTP(S)协议相同的端口
默认情况下,是 - 但您可以通过URL覆盖两者中的端口,请考虑:
http://www.example.com:443/
https://www.example.com:8080/
http://www.example.com:12345/
如果其他东西已经在某个特定端口/地址上侦听,那么你就无法在那里运行第二台服务器 - 所以如果你的网络服务器已经在端口443(https)上监听,你将无法运行一个单独的websocket服务器在同一个端口上。
只需将您的HTTPS服务器留在443,然后在12345运行ssl ws服务器。
刚刚看到你的上一条评论。
SSL不只是关于您监听的端口 - 流量是加密的。如果你想处理wss流量,那么你需要一个支持SSL的服务器。有多种实现方法,取决于您实现当前服务器的方式。