zircote / amqp
该库是AMQP协议的PHP实现。
1.0.3
2013-05-20 18:45 UTC
Requires
- php: >=5.3.0
This package is not auto-updated.
Last update: 2024-09-14 14:11:08 UTC
README
设置
git
`git clone git://github.com/zircote/AMQP.git`
composer
{ "require": [ "zircote/amqp": "master-dev" ] }
composer install
使用方法
主机通过传递一个URN字符串作为第一个连接参数来定义
`amqp://user:pass@hostname:port/vhost`
`amqps://user:pass@hostname:port/vhost`
连接选项作为连接的第二个参数传递
<?php $amqp = 'amqp://user:pass@hostname:port/vhost'; // Options Options Array $options = array( 'insist' => false, 'login_method' => \AMQP\Connection::AMQP_AUTH_PLAIN, 'login_response' => null, 'locale' => 'en_US', 'connection_timeout' => 3, 'read_write_timeout' => 3, 'context' => null, 'ssl_options' => array() ); $connection = new \AMQP\Connection($amqp, $options);
如果有RabbitMQ运行,请打开两个终端,在第一个终端中执行以下命令以启动消费者
$ cd php-amqplib/demo
$ php amqp_consumer.php
然后在另一个终端中做
$ cd php-amqplib/demo
$ php amqp_publisher.php some text to publish
你应该在其他终端上的进程中看到消息到达
然后要停止消费者,向其发送quit
消息
$ php amqp_publisher.php quit
如果您需要监听连接到RabbitMQ使用的套接字,请参阅非阻塞消费者中的示例。
$ php amqp_consumer_non_blocking.php
更多示例
amqp_ha_consumer.php
:演示了镜像队列的使用amqp_consumer_exclusive.php
和amqp_publisher_exclusive.php
:演示了使用专用队列的fanout交换amqp_consumer_fanout_{1,2}.php
和amqp_publisher_fanout.php
:演示了具有命名队列的fanout交换basic_get.php
:演示了通过使用基本获取 AMQP调用来从队列中获取消息。
加载类
$ ant setup
在将composer安装到项目中后,请将以下内容放置在您的引导文件中
<?php require_once(dirname(__DIR__) . '/vendor/autoload.php');
调试
如果您想了解协议层面发生的事情,请在您的代码中添加以下常量
<?php define('AMQP_DEBUG', true); ... more code ?>
基准测试
要运行发布/消费基准测试,请输入
$ ant benchmark
测试
一旦您的环境设置完成,您就可以像这样运行测试
$ ant build
历史
本项目是一个正在进行的项目,并基于php-amqplib开始的工作。它通过更新API、文档和php 5.3兼容性来尝试实现更干净、更友好的用例。由于相关项目由于过时的书籍和出版物而没有意愿进行这些更改,因此我决定分叉并开始这项工作。
有关其历史的更多信息,请参阅此项目。