亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

聊天頁(yè)面邏輯

Original 2019-07-02 16:16:02 224
abstract:foreach ($sockets as $socket) {        // 如果可讀的是服務(wù)器 socket, 則處理連接邏輯;                 

foreach ($sockets as $socket) {
        // 如果可讀的是服務(wù)器 socket, 則處理連接邏輯;           
        if ($socket == $this->master) {
            socket_accept($this->master);
            // socket_accept() 接受 請(qǐng)求 “正在 listen 的 socket(像我們的服務(wù)器 socket )” 的連接, 并一個(gè)客戶端 socket, 錯(cuò)誤時(shí)返回 false;
             self::connect($client);
             continue;
            }
        // 如果可讀的是其他已連接 socket ,則讀取其數(shù)據(jù),并處理應(yīng)答邏輯
        } else {
            // 函數(shù) socket_recv() 從 socket 中接受長(zhǎng)度為 len 字節(jié)的數(shù)據(jù),并保存在 $buffer 中。
            $bytes = @socket_recv($socket, $buffer, 2048, 0);

            if ($bytes < 9) {
                // 當(dāng)客戶端忽然中斷時(shí),服務(wù)器會(huì)接收到一個(gè) 8 字節(jié)長(zhǎng)度的消息(由于其數(shù)據(jù)幀機(jī)制,8字節(jié)的消息我們認(rèn)為它是客戶端異常中斷消息),服務(wù)器處理下線邏輯,并將其封裝為消息廣播出去
                $recv_msg = $this->disconnect($socket);
            } else {
                // 如果此客戶端還未握手,執(zhí)行握手邏輯
                if (!$this->sockets[(int)$socket]['handshake']) {
                    self::handShake($socket, $buffer);
                    continue;
                } else {
                    $recv_msg = self::parse($buffer);
                }
            }

            // 廣播消息
            $this->broadcast($msg);
        }
    }
}

Correcting teacher:查無(wú)此人Correction time:2019-07-04 13:18:00
Teacher's summary:完成的不錯(cuò)。代碼很清晰,注銷很明確。繼續(xù)加油

Release Notes

Popular Entries