Esempio n. 1
0
 /**
  * 处理应答
  *
  * @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);
     }
 }