/** * 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']); }
/** * 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); }