Пример #1
0
 /**
  * @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.');
     }
 }
Пример #2
0
 public function test_constructor_withProperParams_populateBodyAndPropertiesProperly()
 {
     $contentType = MessageInterface::CONTENT_TYPE_PLAIN_TEXT;
     $properties = [MessageInterface::PROPERTY_CONTENT_TYPE => $contentType];
     $message = new RpcRequestMessage('', $properties);
     // timestamp
     $this->assertFalse(empty($message->getTimestamp()), 'Empty timestamp!');
     $this->assertTrue(is_int($message->getTimestamp()), 'Timestamp is not int!');
     // type
     $this->assertFalse(empty($message->getType()), 'Empty type!');
     $this->assertEquals(MessageInterface::TYPE_RPC_REQUEST, $message->getType(), sprintf('Type is not "%s"!', MessageInterface::TYPE_RPC_REQUEST));
     // correlation id
     $this->assertFalse(empty($message->getCorrelationId()), 'Empty correlation id!');
     // content type
     $this->assertFalse(empty($message->getContentType()), 'Empty content type!');
     $this->assertEquals(MessageInterface::CONTENT_TYPE_PLAIN_TEXT, $message->getContentType(), sprintf('Content type is not "%s"', $contentType));
     // body
     $this->assertTrue(empty($message->getBody()), 'Body is not empty!');
 }
Пример #3
0
 /**
  * @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());
     }
 }