1
我想創建一個json,我希望從一個生產者發送到另一個,以後需要分解並使用它。 所以我使用activemq,並踐踏,因爲我在php編程。 我有以下程序我的製片人:如何閱讀跺腳發送的消息正文
<?php
namespace Stomp;
require __DIR__ . '/../vendor/autoload.php';
use Stomp\Client;
use Stomp\StatefulStomp;
use Stomp\Network\Connection;
use Stomp\Transport\Message;
header('Content-Type: application/json');
//namespace buttoncall\Model;
$provider=''; //colocar provider
$data1= array(
'provider' => $provider
);
(...)
$data=array($data1,$data2, $data3, $data4);
$json = json_encode($data, true);
$destination = '/queue/nexmo';
$messages = 1;
$size = 1024;
$DATA = "calls";
//$body = $data;
$body = $json;
for($i=0; $i< $size; $i++) {
$body .= $DATA[ $i % 26];
}
try {
$connection = new Connection('tcp://192.168.64.2:61613');
$con1 = new StatefulStomp(new Client($connection));
$con1->send($destination, new Message($body));
echo "Message sent $body \n" ;
$con1->send($destination, new Message("SHUTDOWN"));
} catch(StompException $e) {
echo $e->getMessage();
}
}
}
然後將下面的消費者:
<?php
//Nexmo
namespace Stomp;
require __DIR__ . '/../vendor/autoload.php';
include 'generate_jwt.php';
use Stomp\Client;
use Stomp\StatefulStomp;
use Stomp\Network\Connection;
use Stomp\Transport\Message;
$user = getenv("ACTIVEMQ_USER");
if(!$user) $user = "admin";
$password = getenv("ACTIVEMQ_PASSWORD");
if(!$password) $password = "admin";
/*$host = getenv("ACTIVEMQ_HOST");
if(!$host) $host = "localhost";
$port = getenv("ACTIVEMQ_PORT");
if(!$port) $port = 61613; */
$destination = '/queue/nexmo';
try {
$connection = new Connection('tcp://192.168.64.2:61613');
$stomp = new StatefulStomp(new Client($connection));
$stomp->subscribe($destination);
echo "Waiting for messages...\n";
while(true) {
$frame = $stomp->read();
echo "message received";
$json = $frame->$body;
//echo($stomp);
//echo($frame);
//echo($body);
echo $json ;
}
} catch(StompException $e) {
echo $e->getMessage();
}
我試過幾種組合打印的身體,但似乎沒有任何工作...他們這兩個交流,我可以看到他們在ActiveMQ經紀人,但我不能提取身體... 任何線索? 預先感謝您