Cli\Agent::fetch PHP Method

fetch() public method

Retrieve and unmask payload
public fetch ( ) : array | FALSE
return array | FALSE
    function fetch()
    {
        // Unmask payload
        $server = $this->server();
        if (is_bool($buf = $server->read($this->socket))) {
            $this->free();
            return FALSE;
        }
        $buf = $this->buffer .= $buf;
        $op = ord($buf[0]) & WS::OpCode;
        $len = ord($buf[1]) & WS::Length;
        $pos = 2;
        if ($len == 0x7e) {
            $len = ord($buf[2]) * 256 + ord($buf[3]);
            $pos += 2;
        } else {
            if ($len == 0x7f) {
                for ($i = 0, $len = 0; $i < 8; $i++) {
                    $len = $len * 256 + ord($buf[$i + 2]);
                }
                $pos += 8;
            }
        }
        for ($i = 0, $mask = []; $i < 4; $i++) {
            $mask[$i] = ord($buf[$pos + $i]);
        }
        $pos += 4;
        if (strlen($buf) < $len + $pos) {
            return FALSE;
        }
        for ($i = 0, $data = ''; $i < $len; $i++) {
            $data .= chr(ord($buf[$pos + $i]) ^ $mask[$i % 4]);
        }
        $this->buffer = '';
        return [$op, $data];
    }