首页 PHP 库 其它类库 纯PHP AMQP库
纯PHP AMQP库

AMQP,即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同的开发语言等条件的限制。Erlang中的实现有 RabbitMQ等。

abstract class AbstractChannel
{
    const PROTOCOL_080 = '0.8';
    const PROTOCOL_091 = '0.9.1';
    public static $PROTOCOL_CONSTANTS_CLASS;
    public function __construct(AbstractConnection $connection, $channel_id)
    {
        $this->connection = $connection;
        $this->channel_id = $channel_id;
        $connection->channels[$channel_id] = $this;
        $this->frame_queue = array(); // Lower level queue for frames
        $this->method_queue = array(); // Higher level queue for methods
        $this->auto_decode = false;
        $this->msg_property_reader = new AMQPReader(null);
        $this->wait_content_reader = new AMQPReader(null);
        $this->dispatch_reader = new AMQPReader(null);
        $this->protocolVersion = self::getProtocolVersion();
        switch ($this->protocolVersion) {
            case self::PROTOCOL_091:
                self::$PROTOCOL_CONSTANTS_CLASS = 'PhpAmqpLib\Wire\Constants091';
                $c = self::$PROTOCOL_CONSTANTS_CLASS;
                $this->debug = new DebugHelper($c);
                $this->amqp_protocol_header = $c::$AMQP_PROTOCOL_HEADER;
                $this->protocolWriter = new Protocol091();
                $this->waitHelper = new Wait091();
                $this->methodMap = new MethodMap091();
                break;
            case self::PROTOCOL_080:
                self::$PROTOCOL_CONSTANTS_CLASS = 'PhpAmqpLib\Wire\Constants080';
                $c = self::$PROTOCOL_CONSTANTS_CLASS;
                $this->debug = new DebugHelper($c);
                $this->amqp_protocol_header = $c::$AMQP_PROTOCOL_HEADER;
                $this->protocolWriter = new Protocol080();
                $this->waitHelper = new Wait080();
                $this->methodMap = new MethodMap080();
                break;
            default:
                throw new AMQPRuntimeException(sprintf(
                    'Protocol: %s not implemented.',
                    $this->protocolVersion
                ));
        }
    }


免责声明

本站所有资源均由网友贡献或各大下载网站转载。请自行检查软件的完整性!本站所有资源仅供学习参考。请不要将它们用于商业目的。否则,一切后果由您负责!如有侵权,请联系我们删除。联系方式:admin@php.cn

相关文章

如何使用PHP编写库存管理系统中的库存库位管理功能代码 如何使用PHP编写库存管理系统中的库存库位管理功能代码

06 Aug 2023

如何使用PHP编写库存管理系统中的库存库位管理功能代码库存管理系统对于任何一家企业来说都是至关重要的,它能够帮助企业实时追踪商品库存情况,准确掌握库存数量和位置,提高工作效率。其中,库存库位管理是库存管理系统中的一个关键功能之一,它能够帮助企业管理和分类不同种类的库位,确保仓库的整洁和有序。本文将教你如何使用PHP编写库存库位管理功能的代码。首先,我们需要创

推荐25款php中非常有用的类库,25款php中非类库 推荐25款php中非常有用的类库,25款php中非类库

13 Jun 2016

推荐25款php中非常有用的类库,25款php中非类库。推荐25款php中非常有用的类库,25款php中非类库 Snappy Snappy是PHP5用于生成缩略图,快照,PDF,URL或HTML页面。它采用了优秀的基于WebKit的wkht

PHP编程中常用到的PHP类库总结 PHP编程中常用到的PHP类库总结

13 Jun 2016

PHP编程中常用到的PHP类库总结。下面介绍的是 PHP 编程中的经常用到的一些PHP的类库 一、图表库 下面的类库可以让你很简的创建复杂的图表和图片。当然,它们 需要GD库的

PHP框架与数据库:该如何选择数据库? PHP框架与数据库:该如何选择数据库?

05 Jun 2024

选择PHP框架时,数据库类型至关重要。每类数据库都有其针对性用例,应选择最适合您项目需求的数据库。需要考虑数据类型、性能、可扩展性和开发人员经验。本指南提供了有关在PHP框架中选择和实施数据库的见解:数据库类型关系数据库(如MySQL、PostgreSQL)非关系数据库(如MongoDB、Cassandra)云数据库(如GoogleCloudSQL、AmazonRDS)考虑因素数据类型性能可扩展性开发人员经验实战案例:使用MySQL在LaravelPHP框架中获取所有用户插入新

php如何使用PHP图片处理类库? php如何使用PHP图片处理类库?

02 Jun 2023

PHP图片处理类库是PHP开发者常用的工具之一,它可以帮助我们快速轻松地对图片进行编辑、剪裁、缩放等操作。本文将介绍如何使用PHP图片处理类库。一、什么是PHP图片处理类库?PHP图片处理类库是为了方便PHP开发者对图片进行快速处理而开发的一组工具包。它可以处理JPG、PNG、GIF和BMP等图片格式,实现图片缩放、旋转、裁剪等多

PHP中的数据库相关数据类型及其操作示例 PHP中的数据库相关数据类型及其操作示例

15 Jul 2023

PHP中的数据库相关数据类型及其操作示例一、简介数据库是应用程序中最重要的组成部分之一,它负责存储和管理应用程序所需的数据。在PHP中,我们可以使用多种方法来操作数据库,如MySQL、SQLite、Oracle等。本文将重点介绍PHP中常用的数据库相关数据类型以及其操作示例。二、数据类型字符串(String)字符串是最常见的数据类型之一,用于存储文本数据。在

See all articles