2016-07-26 76 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

什麼將是'$這個 - > message'爲例數組JSON?它應該如何爲給定的數組制定消息? – FirstOne

+0

@FirstOne從另一個函數接收數組,數組內容是例如:'$ this-> message = array('a'=>'b');' – pableiros

+0

好的。該如何根據數組制定消息?我的意思是,給予該陣列的預期消息是什麼? **編輯:**請將這些信息放在問題中(請在獲得答案時增加您的可能性) – FirstOne

回答

0

轉換使用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);