websocket怎么哪里报错
php websocket连接报错一般是握手连接失败导致。
php 用websocket,从连接、建立、绑定、监听等,这些都需要手动去操作。配置错误会导致无法连接。
下面是client和server端建立websocket连接示意图:
解析:
1、PHP 中处理 WEBSOCKET
WebSocket 连接是由客户端主动发起的,所以一切要从客户端出发。第一步是要解析拿到客户端发过来的 Sec-WebSocket-Key 字符串。GET /chat HTTP/1.1Host: server.example.comUpgrade: websocketConnection: UpgradeSec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==Origin: baidu.comSec-WebSocket-Protocol: chat, superchatSec-WebSocket-Version: 13
2、提取 SEC-WEBSOCKET-KEY 信息
function getKey($req) { $key = null; if (preg_match("/Sec-WebSocket-Key: (.*)/r/n/", $req, $match)) { $key = $match[1]; } return $key;}3、加密 SEC-WEBSOCKET-KEY
function encry($req){ $key = $this->getKey($req); $mask = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11"; return base64_encode(sha1($key . '258EAFA5-E914-47DA-95CA-C5AB0DC85B11', true));}
以上任何一个环节出错都会导致失败。