function send($op, $data = '')
{
$mask = WS::Finale | $op & WS::OpCode;
$len = strlen($data);
$str = '';
if ($len > 0xffff) {
$str = pack('CCNN', $mask, 0x7f, $len);
} else {
if ($len > 0x7d) {
$str = pack('CCn', $mask, 0x7e, $len);
} else {
$str = pack('CC', $mask, $len);
}
}
$str .= $data;
$server = $this->server();
if (is_bool($server->write($this->socket, $str))) {
$this->free();
return FALSE;
}
if (!in_array($op, [WS::Pong, WS::Close]) && isset($this->events['send']) && is_callable($func = $this->events['send'])) {
$func($this, $op, $data);
}
return $data;
}