WEBSOCKETphp
服務端代碼web
//建立websocket服務器對象,監聽0.0.0.0:9502端口 $ws = new swoole_websocket_server("0.0.0.0", 9502); //監聽WebSocket鏈接打開事件 $ws->on('open', function ($ws, $request) { var_dump($request->fd, $request->get, $request->server); $ws->push($request->fd, "hello, welcome\n"); }); //監聽WebSocket消息事件 $ws->on('message', function ($ws, $frame) { echo "Message: {$frame->data}\n"; $ws->push($frame->fd, "server: {$frame->data}"); }); //監聽WebSocket鏈接關閉事件 $ws->on('close', function ($ws, $fd) { echo "client-{$fd} is closed\n"; }); $ws->start();
WebSocket服務器是創建在Http服務器之上的長鏈接服務器,客戶端首先會發送一個Http的請求與服務器進行握手。握手成功後會觸發onOpen事件,表示鏈接已就緒,onOpen函數中能夠獲得$request
對象,包含了Http握手的相關信息,如GET參數、Cookie、Http頭信息等。服務器
創建鏈接後客戶端與服務器端就能夠雙向通訊了。websocket
onMessage
事件回調$server->push()
向某個客戶端(使用$fd標識符)發送消息onHandShake
事件回調來手工處理WebSocket握手待續 須要安裝 客戶端swoole