/** * @param RpcResponseMessage $response * * @return void */ protected function sendResponse(RpcResponseMessage $response) { if ($this->currentRequest instanceof RpcRequestMessage) { $correlationId = $this->currentRequest->getCorrelationId(); $response->setCorrelationId($correlationId); // Publish reponse message $this->connector->basicPublish($response, '', $this->currentRequest->getReplyTo()); } else { $this->logger->warning('Imposible to send response! Invalid request.'); } }
/** * @param MessageInterface $message */ protected function publishMessage(MessageInterface $message) { // Connect $this->connector->connect(); // Publish message if (true == $this->publishOnQueue) { $this->connector->basicPublish($message, '', $this->publicationsQueue); } else { $this->connector->basicPublish($message, $this->publicationsExchange, $this->publicationsRoutingKey); } }
/** * @param RpcRequestMessage $request * @param string $routingKey */ protected final function sendRequest(RpcRequestMessage $request, $routingKey) { $this->correlarionId = $request->getCorrelationId(); // Publish request message $this->connector->basicPublish($request, $this->exchange, $routingKey); // Wait for response $this->logger->debug('Waiting for response...', ['body' => $request->getBody(), 'properties' => $request->getProperties()]); $this->connector->basicConsume($this->responsesQueue, $this->getCallback()); while (!$this->rpcResponse) { $this->connector->wait($this->getTimeOut()); } }