public function __call($name, $args)
{
$name = strtolower($name);
$onResponse = null;
if (($e = end($args)) && (is_array($e) || is_object($e)) && is_callable($e)) {
$onResponse = array_pop($args);
}
if (!isset($this->opCodes[$name])) {
throw new UndefinedMethodCalled();
}
$data = implode(" ", $args);
$this->requestByServer(null, pack('LS', mb_orig_strlen($data) + 2, $this->opCodes[$name]) . $data, $onResponse);
}