您好,登錄后才能下訂單哦!
小編給大家分享一下swoole打開WebSocket的方法,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
WebSocket(ws)是html5新增加的一種通信協議,目前流行的瀏覽器都支持這個協議,例如Chrome,Safrie,Firefox,Opera,IE等等,對該協議支持最早的應該是chrome,從chrome12就已經開始支持,隨著協議草案的不斷變化,各個瀏覽器對協議的實現也在不停的更新。
swoole 1.7.9增加了內置的WebSocket服務器支持,通過幾行PHP代碼就可以寫出一個異步非阻塞多進程的WebSocket服務器。
$server = new Swoole\WebSocket\Server("0.0.0.0", 9501); $server->on('open', function (Swoole\WebSocket\Server $server, $request) { echo "server: handshake success with fd{$request->fd}\n"; }); $server->on('message', function (Swoole\WebSocket\Server $server, $frame) { echo "receive from {$frame->fd}:{$frame->data},opcode:{$frame->opcode},fin:{$frame->finish}\n"; $server->push($frame->fd, "this is server"); }); $server->on('close', function ($ser, $fd) { echo "client {$fd} closed\n"; }); $server->start();
WebSocket服務器除了接收Swoole\Server和Swoole\Http\Server基類的回調函數外,額外增加了3個回調函數設置。其中:
onMessage回調函數為必選
onOpen和onHandShake回調函數為可選
WebSocket\Server是Server的子類,因此可以調用Server的全部方法。
需要注意WebSocket服務器向客戶端發送數據應當使用WebSocket\Server::push方法,此方法會進行WebSocket協議打包。而Server::send方法是原始的TCP發送接口。
WebSocket\Server::disconnect方法可以從服務端主動關閉一個WebSocket連接,可以指定狀態碼(根據WebSocket協議,可使用的狀態碼為十進制的一個整數,取值可以是1000或4000-4999)和關閉原因(采用utf-8編碼、字節長度不超過125的字符串)。
在未指定情況下狀態碼為1000,關閉原因為空
看完了這篇文章,相信你對swoole打開WebSocket的方法有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。