搜索
纯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

相关文章

如何链接依赖于其他静态库的静态库?如何链接依赖于其他静态库的静态库?

13Dec2024

将静态库链接到其他静态库:一种综合方法静态库提供了一种方便的机制来打包可重用的...

ThinkPHP怎么导入第三方类库ThinkPHP怎么导入第三方类库

03Jun2023

  第三方类库  第三方类库指除了ThinkPHP框架、应用项目类库之外的其他类库,一般由第三方系统或产品提供,如Smarty、Zend等系统的类库等。  前面使用自动加载或import方法导入的类库,ThinkPHP约定是以.class.php为后缀的,非这类的后缀,需要通过import的参数来控制。  但对第三类库,由于不会有此约定,其后缀只能认为是php。为了方便的引入其他框架和系统的类库,ThinkPHP特意提供了导入第三方类库的功能。第三方类库统一放置在ThinkPHP系统目录/

使用jquery.noConflict()解决jquery库与其他库冲突的问题使用jquery.noConflict()解决jquery库与其他库冲突的问题

20Jun2017

在使用jQuery开发的时候,可能还会使用到其他的JS库,比如Prototype,但多库共存时可能会发生冲突;若是发生冲突后,可以通过以下几种方案进行解决:一、 jQuery库在其他库之前导入,直接使用jQuery(callback)方法如:

linux依赖包是什么linux依赖包是什么

24Mar2023

linux依赖包是指“库文件”,大部分依赖包都是一些库文件,有动态库也有静态库;Linux系统和其他操作系统一样,都是模块化的设计,也就是说功能互相依靠,有些功能需要一些其他功能来支撑,这样可以提高代码的可重用性。

python怎么使用pip工具python怎么使用pip工具

02Jul2019

安装python以后,如果需要安装一些其他的库,一般有两种办法,一种是自己手动去各个库的官网下载,自己安装;另一种方法是安装pip,使用pip可以方便安装各种python的库。安装pip后可以通过命令直接安装删除第三方库。

C++ 生态系统中流行库和框架与其他编程语言生态系统的比较C++ 生态系统中流行库和框架与其他编程语言生态系统的比较

02Jun2024

C++生态系统中的流行库和框架与其他编程语言生态系统的比较引言C++是对系统编程至关重要的语言,拥有一个广泛而强大的库和框架生态系统。本文将比较C++生态系统与其他流行编程语言生态系统中的库和框架,重点关注特性、性能和易用性。库标准库:C++的标准库提供了广泛的数据结构、算法和输入/输出功能。虽然其他语言也有类似的标准库,但C++的库以其效率和灵活性而著称。Boost库:Boost是一个广泛使用的第三方库集合,提供了标准库没有的许多附加功能。它以提供各种跨平台功能而闻名,例如线程、并

See all articles