最新消息:XAMPP默认安装之后是很不安全的,我们只需要点击左方菜单的 "安全"选项,按照向导操作即可完成安全设置。

第二十三章-盤古開天(十一)-WEBSOCKET SERVER端(5)

XAMPP下载 admin 666浏览 0评论
 接續上一篇,
還沒處理完傳送訊息的部分,
之後會用到4個自訂函數
woshou()-握手用
send()
send1()
send2()

先來說握手的部分,
握手必須照協議组合進行訊息返回,
有些程式語言不需要自己建立就有內建,
而這邊我們是自己處理,
websocket握手的介紹前面篇章說過就不再提,
實做如下:

/*
* 函數說明:對client的請求進行回應,即握手操作
* @$k clien的socket對應的鍵,即每個用戶有唯一$k並對應socket
* @$buffer 接收client請求的所有訊息
*/
function woshou($k,$buffer){

//截取Sec-WebSocket-Key的值並加密
$buf = substr($buffer,strpos($buffer,’Sec-WebSocket-Key:’)+18);

$key = trim(substr($buf,0,strpos($buf,”\r\n”)));
$new_key = base64_encode(sha1($key.”258EAFA5-E914-47DA-95CA-C5AB0DC85B11″,true));

//按照協議组合訊息進行返回
$new_message = “HTTP/1.1 101 Switching Protocols\r\n”;
$new_message .= “Upgrade: websocket\r\n”;
$new_message .= “Sec-WebSocket-Version: 13\r\n”;
$new_message .= “Connection: Upgrade\r\n”;
$new_message .= “Sec-WebSocket-Accept: ” . $new_key . “\r\n\r\n”;
socket_write($this->users[$k][‘socket’],$new_message,strlen($new_message));

//對已經握手的client做標記
$this->users[$k][‘shou’]=true;
return true;

}
剩下三個我們下一篇章談~

转载请注明:XAMPP中文组官网 » 第二十三章-盤古開天(十一)-WEBSOCKET SERVER端(5)

您必须 登录 才能发表评论!