/** * @param AMQPMessage $message * * @return AMQPMessage|null * * @throws \Exception */ public function handle(AMQPMessage $message) { $request = $this->createRequest($message); if (!$message->has('reply_to')) { $this->endpoint->publish($request); return; } try { $response = $this->endpoint->call($request)->resolve(); } catch (\Exception $e) { $response = new Response('', ['x-error' => $e->getMessage(), 'x-error-code' => $e->getCode()]); } $reply = $this->createReply($response); if ($message->has('correlation_id')) { $reply->set('correlation_id', $message->get('correlation_id')); } return $reply; }