GET ws://echo.websocket.org/ HTTP/1.1 Origin: http://websocket.org Cookie: __utma=99as Connection: Upgrade Host: echo.websocket.org Sec-WebSocket-Key : uRovscZjNol/umbTt5uKmw== Upgrade: websocket Sec-WebSocket-Version: 13
https://www.websocket.org/echo.html
我尝试使用以上页面进行连接,但没有任何响应。
如果您有其他选择,请告诉我。
我当然连接到同一网络。
答案 0 :(得分:0)
要使用不带库的php连接到wss://echo.websocket.org
,
<?php
$sock = stream_socket_client("ssl://echo.websocket.org:443",$e,$n,30,STREAM_CLIENT_CONNECT,stream_context_create(null));
if(!$sock){
echo"[$n]$e".PHP_EOL;
} else {
fwrite($sock,"GET / HTTP/1.1\r\nHost: echo.websocket.org\r\nAccept: */*\r\nConnection: Upgrade\r\nUpgrade: websocket\r\nSec-WebSocket-Version: 13\r\nSec-WebSocket-Key: ".rand(0,999)."\r\n\r\n");
while(!feof($sock)){
var_dump(fgets($sock,2048));
}
}
这处理了 wss 加密通量的密钥握手。
响应应如下所示:
HTTP/1.1 101 Web Socket Protocol Handshake
Connection: Upgrade
Date: Fri, 15 Nov 2019 05:15:36 GMT
Sec-WebSocket-Accept: wl5g9FOLmrZUguiPZeig/2uiI9o=
Server: Kaazing Gateway
Upgrade: websocket
与命令行代码相同:
php -r '$sock=stream_socket_client("ssl://echo.websocket.org:443",$e,$n,30,STREAM_CLIENT_CONNECT,stream_context_create(null));if(!$sock){echo"[$n]$e".PHP_EOL;}else{fwrite($sock,"GET / HTTP/1.1\r\nHost: echo.websocket.org\r\nAccept: */*\r\nConnection: Upgrade\r\nUpgrade: websocket\r\nSec-WebSocket-Version: 13\r\nSec-WebSocket-Key: ".rand(0,999)."\r\n\r\n");while(!feof($sock)){var_dump(fgets($sock,2048));}}'