zircote/amqp

该库是AMQP协议的PHP实现。

1.0.3 2013-05-20 18:45 UTC

This package is not auto-updated.

Last update: 2024-09-14 14:11:08 UTC


README

Build Status

设置

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.phpamqp_publisher_exclusive.php:演示了使用专用队列的fanout交换
  • amqp_consumer_fanout_{1,2}.phpamqp_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兼容性来尝试实现更干净、更友好的用例。由于相关项目由于过时的书籍和出版物而没有意愿进行这些更改,因此我决定分叉并开始这项工作。

有关其历史的更多信息,请参阅此项目。