2016-07-26 2 views
0

Как отправить массив через разветвитель с помощью basic_publish?Публикация массива разломов с помощью RabbitMQ

Я делаю это:

// $this->message is the array to send 
$props = array('content_type' => 'application/json'); 
$msg = new AMQPMessage($this->message, $props); 

$channel->basic_publish($msg, $this->fanoutName); 

И я получаю эту ошибку:

ErrorException in AMQPChannel.php line 1098: mb_strlen() expects parameter 1 to be string, array given

я ищу много, и я не могу найти способ, чтобы отправить массив вместо строки ,

+0

Что бы быть примером для '$ this-> message'? Как предполагается, чтобы сформулировать сообщение для данного массива? – FirstOne

+0

@FirstOne массив получает от другой функции, содержимое массива, например: '$ this-> message = array ('a' => 'b');' – pableiros

+0

Хорошо. И как должно быть сформулировано сообщение на основе массива? Я имею в виду, каково ожидаемое сообщение, данное этому массиву? ** Изменить: ** поместить эти сведения в вопрос, пожалуйста (это может увеличить ваши шансы на получение ответа) – FirstOne

ответ

0

преобразовать массив в JSON с помощью json_encode

http://www.dyn-web.com/tutorials/php-js/json/array.php


// $this->message is the array to send 
$props = array('content_type' => 'application/json'); 

// convert the array to json 
$data = json_encode($this->message); 

// send the resulting json data 
$msg = new AMQPMessage($data, $props); 

$channel->basic_publish($msg, $this->fanoutName); 
Смежные вопросы