PHP AMQP的问题

发布于 2021-11-26 11:05:52 字数 256 浏览 785 评论 5

装了amqp 1.0.1 PHP的extension...

看着在线文档..写了个程序可以发送消息去消息队列...

但是接收不会写...因为PHP在线关于AMQP的文档范例是错的...

比如AMQPQueue的declare(void)..

但是范例却写declare("xxxx")...

求PHP的amqp 1.0.1 的正常范例....

help me ...thx...

@红薯

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

吃颗糖壮壮胆 2021-11-28 08:30:35

php官方那个确实有问题

甜柠檬 2021-11-28 07:19:19
$conn_args = array('host' => '192.168.4.1', 'port' => '5672', 'login' => 'test', 'password' => 'test' ,'vhost'=>'localhost'); 
$cnn = new AMQPConnection($conn_args);
$cnn->connect();

$ch = new AMQPChannel($cnn);

// Declare a new exchange
$ex = new AMQPExchange($ch);
$ex->setName('exchange1');
$ex->setType(AMQP_EX_TYPE_FANOUT);
$ex->declare();

// Create a new queue
$q = new AMQPQueue($ch);
$q->setName('queue1' . time());
$q->declare();

// Bind it on the exchange to routing.key
$q->bind($ex->getName(), 'routing.*');
// Publish a message to the exchange with a routing key
$ex->publish('message', 'routing.1');
$ex->publish('message2', 'routing.2');
$ex->publish('message3', 'routing.3');


for ($i = 0; $i < 3; $i++) {
// Read from the queue
$msg = $q->get(AMQP_AUTOACK);
    echo $msg->getBody() . "n";
}

$ex->delete();

秋意浓 2021-11-27 12:36:44

<?php

$conn_args = array('host' => 'localhost', 'port' => '5672', 'login' => 'guest', 'password' => 'guest'

                    ,'vhost'=>'/');

$conn = new AMQPConnection($conn_args);

$conn->connect();

$channel = new AMQPChannel($conn);

$q = new AMQPQueue($channel);

$q->setName('queue2');

$q->setFlags(AMQP_DURABLE | AMQP_AUTODELETE);

echo "queue status: ".$q->declare();

echo "==========n";

    

$messages = $q->get(AMQP_AUTOACK);

print_r($messages->getBody());

echo "n";

// disconnect

$conn->disconnect();

?>

奢华的一滴泪 2021-11-27 09:58:32

<?php

//设置你的连接

$conn_args = array('host' => 'localhost', 'port' => '5672', 'login' => 'guest', 'password' => 'guest');

$conn = new AMQPConnection($conn_args);

if ($conn->connect()) {

    echo "Established a connection to the broker n";

}

else {

    echo "Cannot connect to the broker n ";

}

//你的消息

$message = json_encode(array('Hello World!','php','c++'));

//创建channel

$channel = new AMQPChannel($conn);

//创建exchange

$ex = new AMQPExchange($channel);

$ex->setName('exchange');//创建名字

$ex->setType(AMQP_EX_TYPE_DIRECT);

$ex->setFlags(AMQP_DURABLE | AMQP_AUTODELETE);

echo "exchange status:".$ex->declare();

echo "n";

//创建队列

$q = new AMQPQueue($channel);

//设置队列名字 如果不存在则添加

$q->setName('queue');

$q->setFlags(AMQP_DURABLE | AMQP_AUTODELETE);

echo "queue status: ".$q->declare();

echo "n";

echo 'queue bind: '.$q->bind('exchange','route.key');//将你的队列绑定到routingKey

echo "n";

$channel->startTransaction();

echo "send: ".$ex->publish($message, 'route.key'); //将你的消息通过制定routingKey发送

$channel->commitTransaction();

$conn->disconnect();

?>

泛泛之交 2021-11-27 09:21:20

$q->get(AMQP_AUTOACK); 请教关于这个的问题 如果我是这么写
$q->get(); 队列中的数据如何清楚 

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文