/** * 处理应答 * * @param ZMQSocket $socket */ protected function process_reply($socket) { $frames = APS_Functions::aps_recv_frames($socket); list($envelope, $message) = APS_Functions::aps_envelope_unwrap($frames); $version = array_shift($message); list($sequence, $timestamp, $status) = msgpack_unpack(array_shift($message)); $reply = array_shift($message); if ($reply !== NULL) { $reply = msgpack_unpack($reply); } $callback = $this->requests[$sequence][3]; if ($callback !== NULL && is_callable($callback)) { call_user_func_array($callback, array($reply, $status)); unset($this->requests[$sequence]); } else { $this->store_reply($sequence, $reply, $status); } }