1.配置
整体参考https://www.cnblogs.com/miketwais/p/RabbitMQ.html
在http://pecl.php.net/package/amqp下载是注意只有1.4之前的版本才支持php5,而xmapp下的php为5.6目前,另外注意xmapp的php版本为x86的,选择线程安全版本如下图
选择最后一个,选对版本一般没有问题,有问题的话php -v一般会报错。
2.tp5下composer下载第三方库
tp5下的composer.json文件添加
"require": {
"php": ">=5.4.0",
"topthink/think-installer": "~1.0",
"php-amqplib/php-amqplib": "^2.7"
},
或者直接在对应目录下composer require php-amqplib/php-amqplib
等待一会后在vendor目录看到下载好的文件后就可以使用了(注意composer.json必须在目录的根目录下)
3.代码测试
tp5支持composer的autoload所以直接使用
use PhpAmqpLib\Connection\AMQPStreamConnection;
use PhpAmqpLib\Message\AMQPMessage;
$conn_args = array(
'host' => '127.0.0.1',
'port' => '5672',
'login' => 'test',
'password' => '123456',
'vhost'=>'/'
);
$e_name = 'KSHOP'; //交换机名
$k_queue = 'hello'; //路由key
$connection = new AMQPStreamConnection($conn_args['host'], $conn_args['port'], $conn_args['login'], $conn_args['password'], $conn_args['vhost']); // 创建连接
$channel = $connection->channel();
$channel->queue_declare($k_queue, false, true, false, false);
$channel->exchange_declare($e_name, 'direct', false, true, false);
$channel->queue_bind($k_queue, $e_name); // 队列和交换器绑定
$messageBody = 'testinfo12'; // 要推送的消息
$message = new AMQPMessage($messageBody, array('content_type' => 'text/plain', 'delivery_mode' => AMQPMessage::DELIVERY_MODE_PERSISTENT));
$channel->basic_publish($message, '',$k_queue); // 推送消息
$channel->close();
$connection->close();
4.测试效果
运行代码后,java运行代码收到消息,到此后台基于rabbitmq的消息队列基本整合完毕。