我有一个带有IIS和PHP的Windows 2012 R2服务器(5.5.12)。
我正在尝试制作(安全)WebSocket服务器。所以,我做到了:
$host = 'ssl://127.0.0.1'; // host
$port = '8080'; // port
//Create TCP/IP sream socket
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1);
socket_bind($socket, 0, $port);
socket_listen($socket);
当我使用ws://连接时,一切正常,我收到了正确的标题:
GET /server.php HTTP/1.1
Upgrade: websocket
Connection: Upgrade
Host: site.url:8080
Origin: https://site.url
Pragma: no-cache
Cache-Control: no-cache
Sec-WebSocket-Key: MwqZ0uVuheQaS3ks7EJARQ==
Sec-WebSocket-Version: 13
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits, x-webkit-d
eflate-frame
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like
Gecko) Chrome/34.0.1847.131 Safari/537.36
但是当我尝试使用wss://连接时...我收到一些奇怪的东西:
▬♥☺ ø☺ ù♥☺¶P↓ÚðÙ±s÷╠Þ´▲è♣ÖaN?uüEg´¯§òñÞ=¿§ *└
└ └‼└¶└↕└└◄ 3 2 E 9 8 ê ▬ / A 5 ä
♣ ♦☺ D ↑ ▬ ‼ site.url ☺ ☺
♠ ↨ ↑ ↓ ♂ ☻☺ # 3t ♣ ♣☺
我不能做握手......
我做错了什么?
感谢您的帮助,抱歉英语不好。
答案 0 :(得分:0)
尝试使用stream sockets代替setting the stream context options。此外,您可能希望使用tls://而不是ssl://