延續上一篇,
還沒講到自訂函數WebSocket(),
首先我們先建立WebSocket()這個函數,
記得要建立WebSocket連線必須綁定IP和Port,
所以函數需要接收這兩個值,如下:
function WebSocket($address,$port){
//do some
}
再來使用函數內建函數
socket_create()建立連線
socket_set_option() 設置socket選項
socket_bind()綁定ip&port
socket_listen() 進行監聽
AF_INET這個參數是用TCP或UDP來傳輸,用在IPv4的地址。
SOCK_STREAM這個協議是按照順序的、可靠的、數據完整的基於字節流的連接。這是一個使用最多的socket類型,這個socket是使用TCP來進行傳輸。
SOL_TCP傳輸控制協議,這是一個使用最多的可靠的公共協議,它能保證數據包能夠到達接受者那兒,如果在傳輸過程中發生錯誤,那麼它將重新發送出錯數據
//傳相應的IP與埠進行創建socket操作
function WebSocket($address,$port){
$server = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_set_option($server, SOL_SOCKET, SO_REUSEADDR, 1);//1表示接受所有的數據包
socket_bind($server, $address, $port);
socket_listen($server);
$this->e('Server Started : '.date('Y-m-d H:i:s'));
$this->e('Listening on : '.$address.' port '.$port);
return $server;
}
這樣如果呼叫Sock這個class就會先進到建構子construct,
在經由建構子呼叫WebSocket()這個自訂函數來進行連線&監聽。