PHP中的AMQP类

标签(空格分隔): php,amqp

官网地址:http://docs.php.net/manual/da/book.amqp.php

AMQPConnection

AMQPConnection {
/* Methods */
// 与AMQP代理建立连接
public bool connect ( void )
// 构造函数 $credentials 可以理解为配置项的数组
// $config = [
// 'host' => '127.0.0.1',
// 'port' => '5672',
// 'vhost' => '/',
// 'login' => 'guest',
// 'password' => 'guest'
// ];
public __construct ([ array $credentials = array() ] )
// 断开连接 返回bool值
public bool disconnect ( void )
public bool isConnected ( void )
public bool reconnect ( void )
// 这个单独说下:默认值为: '/', 就是虚拟主机
public bool setVhost ( string $vhost )
// 下面就是一些Geter、Seter方法了 默认用户就是:guest
public string getHost ( void )
public string getLogin ( void )
public string getPassword ( void )
public int getPort ( void )
public string getVhost ( void )
public bool setHost ( string $host )
public bool setLogin ( string $login )
public bool setPassword ( string $password )
public bool setPort ( int $port )
} AMQPConnection::connect — 与AMQP代理建立连接。
AMQPConnection::__construct — 创建 AMQPConnection 的实例
AMQPConnection::disconnect — 关闭与AMQP代理的连接。
AMQPConnection::getHost — 获取配置的主机
AMQPConnection::getLogin — 获取配置的登录名
AMQPConnection::getPassword — 获取配置的密码
AMQPConnection::getPort — 获取配置的端口
AMQPConnection::getVhost — 获取配置的虚拟主机
AMQPConnection::isConnected — 确定AMQPConnection对象是否连接到代理。
AMQPConnection::reconnect — 关闭任何打开的连接,并创建一个与AMQP代理的新连接。
AMQPConnection::setHost — 设置 amqp 主机。
AMQPConnection::setLogin — 设置登录名。
AMQPConnection::setPassword — 设置密码。
AMQPConnection::setPort — 设置端口。
AMQPConnection::setVhost — 设置 amqp 虚拟主机

AMQPChannel

为了一个AMQP的链接,创建一个channel instance(通道实例)

AMQPChannel {
/* Metoder */
public void commitTransaction ( void )
__construct ( AMQPConnection $amqp_connection )
public void isConnected ( void )
// 不知道具体干啥用的
public void qos ( int $size , int $count )
public void rollbackTransaction ( void )
// 这个参数设置,接收的最大消息数量
public void setPrefetchCount ( int $count )
public void setPrefetchSize ( int $size )
public void startTransaction ( void )
} AMQPChannel::commitTransaction — 提交挂起的事务
AMQPChannel::__construct — 创建 AMQPChannel 对象的实例
AMQPChannel::isConnected — 检查信道连接
AMQPChannel::qos — 为给定通道设置服务质量设置
AMQPChannel::rollbackTransaction — 回滚事务
AMQPChannel::setPrefetchCount — 设置要从代理预取的消息数
AMQPChannel::setPrefetchSize — 设置窗口大小以从代理预取
AMQPChannel::startTransaction — 启动事务

AMQPExchange

交换机
AMQPExchange {
/* Methods */
// 交换机绑定队列
public bool bind ( string $destination_exchange_name , string $source_exchange_name , string $routing_key )
public __construct ( AMQPChannel $amqp_channel )
public int declare ( void )
public bool delete ([ int $flags = AMQP_NOPARAM ] )
public mixed getArgument ( string $key )
public array getArguments ( void )
public int getFlags ( void )
public string getName ( void )
public string getType ( void )
// 发送消息
public bool publish ( string $message , string $routing_key [, int $flags = AMQP_NOPARAM [, array $attributes = array() ]] ) public void setArgument ( string $key , mixed $value )
public void setArguments ( array $arguments )
// AMQP_DURABLE, AMQP_PASSIVE
// (and AMQP_DURABLE, if librabbitmq version >= 0.5.3)
public void setFlags ( int $flags )
// 设置交换机名称:最好使用数字、字母、- _ .
// 组合(区分大小写,但最好使用小写)
// 也不要使用amq带头(内置的exchange都是使用amq.开头)
// 如果申明一个已存在的exchange name,如果type不一致会抛出异常
public void setName ( string $exchange_name )
// 目前四种模式:AMQP_EX_TYPE_DIRECT,
// AMQP_EX_TYPE_FANOUT, AMQP_EX_TYPE_HEADERS, AMQP_EX_TYPE_TOPIC
public string setType ( string $exchange_type )
} setFlags含义:
1. passive:声明一个已存在的交换器的,如果不存在将抛出异常,这个一般用在consume端。因为一般produce端创建,在consume端建议设置成AMQP_PASSIVE,防止consume创建exchange
2. durable:持久exchange,该交换器将在broker重启后生效,一般常使用该选项.
3. auto_delete:该交换器将在没有消息队列绑定时自动删除。一个从未绑定任何队列的交换器不会自动删除。解释有点绕。说明下吧,当有队列bind到auto_delete的交换器上之后,删除该队列。此时交换器也会删除。一般创建为临时交换器。 AMQPExchange::bind — 绑定到另一个交换机
AMQPExchange::__construct — 创建 AMQPExchange 的实例
AMQPExchange::declare — 声明一个新的交换机。
AMQPExchange::delete — 删除交换机。
AMQPExchange::getArgument — 获取与给定键关联的参数
AMQPExchange::getArguments — 获取给定交换机上设置的所有参数
AMQPExchange::getFlags — 获取标志位掩码
AMQPExchange::getName — 获取配置的名称
AMQPExchange::getType — 获取配置的类型
AMQPExchange::publish — 向交换机发布消息。
AMQPExchange::setArgument — 设置给定键的值
AMQPExchange::setArguments — 设置交换机上的所有参数
AMQPExchange::setFlags — 在交换机设置标志
AMQPExchange::setName — 设置交换机的名称
AMQPExchange::setType — 设置交换机所的类型

AMQPQueue

队列

AMQPQueue {
/* Metoder */
// 手动确认
public bool ack ( int $delivery_tag [, int $flags = AMQP_NOPARAM ] )
// 与交换机绑定
public bool bind ( string $exchange_name , string $routing_key )
// 取消
public bool cancel ([ string $consumer_tag = "" ] )
// 实例化
public __construct ( AMQPConnection $amqp_connection )
// 消费数据
public void consume ( callable $callback [, int $flags = AMQP_NOPARAM ] )
// 声明队列
public int declare ( void )
// 删除队列
publicbool delete ( void )
// 非阻塞获取数据
public mixed get ([ int $flags ] )
public mixed getArgument ( string $key )
public array getArguments ( void )
public int getFlags ( void )
public string getName ( void )
// 用法ack相反,表示not ack.
public void nack ( string $delivery_tag [, string $flags = AMQP_NOPARAM ] )
public bool purge ( void )
public void setArgument ( string $key , mixed $value )
public void setArguments ( array $arguments )
// AMQP_DURABLE, AMQP_PASSIVE,
// AMQP_EXCLUSIVE, AMQP_AUTODELETE.
public void setFlags ( int $flags )
// 设置队列名称
public void setName ( string $queue_name )
public bool unbind ( string $exchange_name , string $routing_key )
} ::setFlags ( int $flags )
可选参数:AMQP_DURABLE, AMQP_PASSIVE,AMQP_EXCLUSIVE, AMQP_AUTODELETE
默认:auto_delete 1. auto_delete:当队列中有消费者,则队列存在,当没有消费者链接,则队列删除
2. durable:持久化,队列不删除,注意仅仅是队列持久,消息不持久(消息的持久在publish时的增加属性delivery_mode=2)。消费的消息,从队列里删除,未消费的消息保存在队列中,不需要关注是否有消费者。最实用
3. passive:声明一个1个已存在的队列。意义不大,如果队列不存在会抛出异常。
4. exclusive:排他队列,如果一个队列被声明为排他队列,该队列仅对首次声明它的连接可见,并在连接断开时自动删除 AMQPQueue::ack — 确认收到消息
AMQPQueue::bind — 将给定队列绑定到交易所上的路由密钥。
AMQPQueue::cancel — 取消队列绑定。
AMQPQueue::__construct — 创建 AMQPQueue 对象的实例
AMQPQueue::consume — 使用队列中的消息
AMQPQueue::declare — 声明一个新队列
AMQPQueue::delete — 删除队列及其内容。
AMQPQueue::get — 从队列中检索下一条消息。
AMQPQueue::getArgument — 获取与给定键关联的参数
AMQPQueue::getArguments — 获取给定队列上设置的所有参数
AMQPQueue::getFlags — 获取标志位掩码
AMQPQueue::getName — 获取配置的名称
AMQPQueue::nack — 将消息标记为显式未确认。
AMQPQueue::purge — 清除队列的内容
AMQPQueue::setArgument — 设置给定键的值
AMQPQueue::setArguments — 设置队列上的所有参数
AMQPQueue::setFlags — 设置队列标志
AMQPQueue::setName — 设置队列名称

AMQPEnvelope

AMQPEnvelope {
/* Metoder */
public string getAppId ( void )
public string getBody ( void )
public string getContentEncoding ( void )
public string getContentType ( void )
public string getCorrelationId ( void )
public string getDeliveryTag ( void )
public string getExchange ( void )
public string getExpiration ( void )
public string getHeader ( string $header_key )
public array getHeaders ( void )
public string getMessageId ( void )
public string getPriority ( void )
public string getReplyTo ( void )
public string getRoutingKey ( void )
public string getTimeStamp ( void )
public string getType ( void )
public string getUserId ( void )
public bool isRedelivery ( void )
} AMQPEnvelope::getAppId — 获取消息 appid
AMQPEnvelope::getBody — 获取消息正文
AMQPEnvelope::getContentEncoding — 获取消息内容编码
AMQPEnvelope::getContentType — 获取消息内容类型
AMQPEnvelope::getCorrelationId — 获取消息关联 ID
AMQPEnvelope::getDeliveryTag — 获取消息传递标记
AMQPEnvelope::getExchange — 获取消息交换
AMQPEnvelope::getExpiration — 获取消息过期
AMQPEnvelope::getHeader — 获取特定的消息标头
AMQPEnvelope::getHeaders — 获取消息标头
AMQPEnvelope::getMessageId — 获取消息 ID
AMQPEnvelope::getPriority — 获取消息优先级
AMQPEnvelope::getReplyTo — 获取消息回复
AMQPEnvelope::getRoutingKey — 获取消息路由密钥
AMQPEnvelope::getTimeStamp — 获取消息时间戳
AMQPEnvelope::getType — 获取消息类型
AMQPEnvelope::getUserId — 获取消息用户 ID
AMQPEnvelope::isRedelivery — 这是否是消息的重新传递 // 命令行打印的结果
class AMQPEnvelope#4 (20) {
private $content_type =>
string(10) "text/plain"
private $content_encoding =>
string(0) ""
private $headers =>
array(0) {
}
private $delivery_mode =>
int(2)
private $priority =>
int(0)
private $correlation_id =>
string(0) ""
private $reply_to =>
string(0) ""
private $expiration =>
string(0) ""
private $message_id =>
string(0) ""
private $timestamp =>
int(0)
private $type =>
string(0) ""
private $user_id =>
string(0) ""
private $app_id =>
string(0) ""
private $cluster_id =>
string(0) ""
private $body =>
string(12) "HELLO WORLD1"
private $consumer_tag =>
string(31) "amq.ctag-lE1EkfMpX0jyB5mThY1Tjg"
private $delivery_tag =>
int(2)
private $is_redelivery =>
bool(false)
private $exchange_name =>
string(11) "exchange_02"
private $routing_key =>
string(8) "queue_02"
}

PHP中的AMQP类的更多相关文章

  1. Java Native Interfce三在JNI中使用Java类的普通方法与变量

    本文是<The Java Native Interface Programmer's Guide and Specification>读书笔记 前面我们学习了如何在JNI中通过参数来使用J ...

  2. 换个新的思路 代替解压jar包 例证:wechat4j 框架中的templateMsg类

    很多朋友在写java的程序的时候都喜欢用第三方的jar包和框架,有可能遇到jar包中的内容已经跟不上官方开发者文档的更新,导致部分内容出错了,这个时候可能就要放弃这个jar的使用,但是这个jar中的其 ...

  3. 标准C++中的string类的用法总结

    标准C++中的string类的用法总结 相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻吧?的确,MFC中的CString类使用起来真的非常的方便好用.但是如果离开了MFC框架,还有 ...

  4. 带有静态方法的类(java中的math类)

    带有静态方法的类通常(虽然不一定是这样)不打算被初始化. 可以用私有构造函数来限制非抽象类被初始化. 例如,java中的math类.它让构造函数标记为私有,所以你无法创建Math的实例.但Math类却 ...

  5. java-API中的常用类,新特性之-泛型,高级For循环,可变参数

    API中的常用类 System类System类包含一些有用的类字段和方法.它不能被实例化.属性和方法都是静态的. out,标准输出,默认打印在控制台上.通过和PrintStream打印流中的方法组合构 ...

  6. C++中如何定义类和对象?

    在C++语言中,对象的类型被称为类,类代表了某一批对象的共性和特征. 类是对象的抽象,而对象是类的具体实例.如同C中的结构体一样,我们要先定义一个结构体,再使用结构体去定义一个变量.同一个结构体可以定 ...

  7. Oracle数据库中调用Java类开发存储过程、函数的方法

    Oracle数据库中调用Java类开发存储过程.函数的方法 时间:2014年12月24日  浏览:5538次 oracle数据库的开发非常灵活,不仅支持最基本的SQL,而且还提供了独有的PL/SQL, ...

  8. 【转载】C++中的基类与派生类

    转自:http://www.cnblogs.com/sujz/articles/2044365.html 派生类的继承方式总结: 继承方式 说明 public 基类的public和protected的 ...

  9. 回调函数中使用MFC类的成员或对话框控件的简单方法

    在MFC的很多程序中,常常需要在回调函数中调用MFC类的类成员变量.类成员函数,亦或者对话框控件的句柄.由于回调函数是基于C编程的Windows SDK的技术,而类成员又有this指针客观条件限制.. ...

  10. Java ClassLoader基础及加载不同依赖 Jar 中的公共类

    转载自:最新内容及最清晰格式请见 http://www.trinea.cn/android/java-loader-common-class/ 本文主要介绍 ClassLoader 的基础知识,Cla ...

随机推荐

  1. BiliBili常用API

    BiliBili 爬虫b站视频信息 api 视频简要信息 http://api.bilibili.com/x/web-interface/archive/stat?aid=170001 http:// ...

  2. Go 语言:通过TDD测试驱动开发学习 Mocking (模拟)的思想

    正文: 现在需要你写一个程序,从 3 开始依次向下,当到 0 时打印 「GO!」 并退出,要求每次打印从新的一行开始且打印间隔一秒的停顿. 3   2   1   Go!   我们将通过编写一个 Co ...

  3. 我的合肥 .NET 俱乐部线下活动之旅

    一:背景 我是一个性格比较内向的人,天然抵触这种线下面对面的大型活动,我害怕上台之后紧张到语无伦次(有过类似经历),越语无伦次又会让我更紧张,刚好谋得程序员这种工作又特别适合我这种性格的人,所以没有刻 ...

  4. 使用 Azure OpenAI 打造自己的 ChatGPT

    一.前言 当今的人工智能技术正在不断发展,越来越多的企业和个人开始探索人工智能在各个领域中的应用.其中,在自然语言处理领域,OpenAI 的 GPT 系列模型成为了研究热点.OpenAI 公司的 Ch ...

  5. ACM-学习记录-数据结构-1

    AOJ-ALDS1_1_D Maximum Profit 本题主要考虑要将复杂度降到O(n),否则过不了最后五组数据 #include<iostream> #include<bits ...

  6. NIM游戏/SG函数

    NIM游戏 先看一下一维 NIM游戏. 有一堆大小为 \(n\) 的石子,甲和乙轮流从石堆里面拿石子,不能一次拿掉所有石子,取走最后一个石子的人获胜,甲先开始,谁是必胜的? 显然,谁先手,谁就获胜.那 ...

  7. 分享一个修改了xml文件再也不用重启的项目mybatis-xmlreload

    自我18年使用 Mybaits 以来,开发环境中如果修改了 xml 文件后,只有重启项目才能生效,如果小项目重启还好,但是对于一个重启需要十几分钟的大型项目来说,这就非常耗时了.开发人员因为修改了xm ...

  8. Python之进程管理

    使用python创建进程 from multiprocessing import Process # 导入进程模块 import time # 定义一个函数,测试创建进程使用 def task(nam ...

  9. [操作系统/网络]Windows安装Openssh(scp / ssh等)

    1 文由 由于项目有这么一个数据同步需求: [业务建设系统方]在Linux上将Oracle的全量数据(.dmp文件)定时推送到[大数据平台建设方]中的一台Linux服务器上: 然后,[大数据平台建设方 ...

  10. [SpringBoot/JavaEE]SpringBoot启动与停用的4种方式

    SpringBoot版本: 2.1.6.RELEASE 1 启动 方式1 – IntelliJ IDEA - Windows 右键启动类SpringBootSampleApplication.java ...