php rabbitmq demo

composer安装php rabbitmq包

新建composer.json文件,composer install 安装

{
    "require": {
        "php-amqplib/php-amqplib": ">=2.6.1"
    }
}

创建config.php文件

<?php
return [
    'vendor' => [
        'path' => './vendor'
    ],
    'rabbitmq' => [
        'host' => '127.0.0.1',
        'port' => '5672',
        'login' => 'guest',
        'password' => 'guest',
        'vhost' => '/'
    ]
];
?>

 

创建消费者 rabbit_consumer.php,注意具体文件引用的路径

<?php

use PhpAmqpLib\Connection\AMQPStreamConnection;
use PhpAmqpLib\Message\AMQPMessage;

$config = require "./config.php";
require_once $config['vendor']['path'] . '/autoload.php';

$connection = new AMQPStreamConnection($config['rabbitmq']['host'], $config['rabbitmq']['port'],
    $config['rabbitmq']['login'], $config['rabbitmq']['password'], $config['rabbitmq']['vhost']);
$channel = $connection->channel();

$channel->queue_declare('hello', false, false, false, false);
$callback = function($msg) {
  echo $msg->body;
  file_put_contents('log.txt', $msg->body);
};

$channel->basic_consume('hello', '', false, true, false, false, $callback);

while(true) {
    $channel->wait();
}
$channel->close();
$connection->close();

?>

 

创建生产者 rabbit_pulisher.php

<?php



$config = require "./config.php";

require_once $config['vendor']['path'] . '/autoload.php';

use PhpAmqpLib\Connection\AMQPStreamConnection;
use PhpAmqpLib\Message\AMQPMessage;

$connection = new AMQPStreamConnection($config['rabbitmq']['host'], $config['rabbitmq']['port'],
    $config['rabbitmq']['login'], $config['rabbitmq']['password'], $config['rabbitmq']['vhost']);
$channel = $connection->channel();

//发送方其实不需要设置队列, 不过对于持久化有关,建议执行该行
$channel->queue_declare('hello', false, false, false, false);

$msg = new AMQPMessage('Hello World!123'.time());
$channel->basic_publish($msg, '', 'hello');

echo " [x] Sent 'Hello World!x'\n";

$channel->close();
$connection->close();
?>

 

首先运行消费者

php rabbit_consumer.php

另起窗口运行生产者 

php rabbit_publisher.php

转载于:https://www.cnblogs.com/mmmzh/p/10100993.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值