PHP AMQP передает заголовки в запросе
Я пытаюсь отправить запрос в AMQP, застрял в том, как добавить заголовок к сообщению запроса, ниже приведена обертка, которую мы имеем
$message = ‘{"empId": ‘.$empId.', “empName”:”my name"}’;
$resData = $rpcClient->call($message, self::EXCHANGE, self::ROUTING_KEY);
Как добавить заголовки к вышеуказанному сообщению
метод вызова - это оболочка, которую мы написали
public function call($requestMessage, $exchange, $routingKey)
{
$this->response = null;
$this->correlationId = uniqid('abcprod', true);
$message = new AMQPMessage(
strval($requestMessage),
array('correlation_id' => $this->correlationId, 'reply_to' => $this->callbackQueue)
);
$this->channel
->basic_publish($message, $exchange, $routingKey);
try {
$this->channel->wait(null, false, self::REQUEST_TIMEOUT);
} catch (AMQPTimeoutException $e) {
return null;
}
return $this->response;
}
2 ответа
Когда вы создаете сообщение, вы должны установить application_headers
имущество. Это должно быть Wire\AMQPTable
который принимает в качестве аргумента конструктора массив заголовков.
Официальный amqp_message_headers_snd.php
пример:
$message = new AMQPMessage($data);
$headers = new Wire\AMQPTable(array(
'x-foo'=>'bar',
'table'=>array('figuf', 'ghf'=>5, 5=>675),
'num1' => -4294967295,
'num2' => 5,
'num3' => -2147483648,
'true' => true,
'false' => false,
'void' => null,
'date' => new DateTime(),
'array' => array(null, 'foo', 'bar', 5, 5674625, 'ttt', array(5, 8, 2)),
'arr_with_tbl' => array(
'bar',
5,
array('foo', 57, 'ee', array('foo'=>'bar', 'baz'=>'boo', 'arr'=>array(1,2,3, true, new DateTime()))),
67,
array(
'foo'=>'bar',
5=>7,
8=>'boo',
'baz'=>3
)
),
'64bitint' => 9223372036854775807,
'64bit_uint' => '18446744073709600000',
'64bitint_neg' => -pow(2, 40)
));
$headers->set('shortshort', -5, Wire\AMQPTable::T_INT_SHORTSHORT);
$headers->set('short', -1024, Wire\AMQPTable::T_INT_SHORT);
$message->set('application_headers', $headers);
Посмотрите на этот пример из демонстрационной папки библиотеки: https://github.com/videlalvaro/php-amqplib/blob/master/demo/amqp_message_headers_snd.php