/** * @param LocationInterface $location * @param Request $request * * @return AMQPMessage */ private function createMessage(LocationInterface $location, Request $request) { $encoded = $this->encoder->encode($request->getArguments()); return new AMQPMessage($encoded->getBody(), ['content_type' => $encoded->getType(), 'message_id' => uniqid('', true), 'timestamp' => time(), 'application_headers' => new AMQPTable(array_merge($request->getHeaders(), ['to' => $location->name(), 'topic' => $request->getTopic(), 'version' => $request->getVersion()]))]); }
/** * @param Request $request * * @return string * * @throws EncodingException */ private function getEncodedBody(Request $request) { $body = json_encode(['jsonrpc' => '2.0', 'method' => $request->getTopic(), 'params' => $request->getArguments(), 'id' => 1]); if (json_last_error() !== JSON_ERROR_NONE) { throw new EncodingException(sprintf('Unable to encode request: %s', json_last_error_msg())); } return $body; }