示例#1
0
 /**
  * Load
  *
  * @param Message $message Message
  * @param mixed   $data    Message data
  */
 public function load(Message $message, $data)
 {
     $data = json_decode($data, true);
     if (!$this->getSerializer($data['serializer'])->isSupported()) {
         throw new \UnexpectedValueException(sprintf('Serializer "%s" is not supported', $data['serializer']));
     }
     if (isset($data['rpc_channel'])) {
         $message->setRpcChannel($data['rpc_channel']);
     }
     if (isset($data['rpc_channel_expire'])) {
         $message->setRpcChannelExpire($data['rpc_channel_expire']);
     }
     if (isset($data['request_id'])) {
         $message->setRequestId($data['request_id']);
     }
     $message->body = $this->getSerializer($data['serializer'])->unserialize($data['body']);
 }
示例#2
0
 /**
  * Publish
  *
  * @param scalar  $requestId     Request id
  * @param boolean $appendToQueue Append message to queue
  */
 private function publish($requestId, $appendToQueue = false)
 {
     $message = new Message();
     $message->body = $this->requestBodies[$requestId];
     $message->setRpcChannel($this->channel);
     $message->setRpcChannelExpire($this->getChannelExpire());
     $message->setRequestId($requestId);
     $producer = new Producer($this->requests[$requestId], $this->connection);
     $producer->publish($message, $appendToQueue);
 }