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
相关文章
03Jun2023
第三方类库 第三方类库指除了ThinkPHP框架、应用项目类库之外的其他类库,一般由第三方系统或产品提供,如Smarty、Zend等系统的类库等。 前面使用自动加载或import方法导入的类库,ThinkPHP约定是以.class.php为后缀的,非这类的后缀,需要通过import的参数来控制。 但对第三类库,由于不会有此约定,其后缀只能认为是php。为了方便的引入其他框架和系统的类库,ThinkPHP特意提供了导入第三方类库的功能。第三方类库统一放置在ThinkPHP系统目录/
20Jun2017
在使用jQuery开发的时候,可能还会使用到其他的JS库,比如Prototype,但多库共存时可能会发生冲突;若是发生冲突后,可以通过以下几种方案进行解决:一、 jQuery库在其他库之前导入,直接使用jQuery(callback)方法如:
24Mar2023
linux依赖包是指“库文件”,大部分依赖包都是一些库文件,有动态库也有静态库;Linux系统和其他操作系统一样,都是模块化的设计,也就是说功能互相依靠,有些功能需要一些其他功能来支撑,这样可以提高代码的可重用性。
02Jul2019
安装python以后,如果需要安装一些其他的库,一般有两种办法,一种是自己手动去各个库的官网下载,自己安装;另一种方法是安装pip,使用pip可以方便安装各种python的库。安装pip后可以通过命令直接安装删除第三方库。
02Jun2024
C++生态系统中的流行库和框架与其他编程语言生态系统的比较引言C++是对系统编程至关重要的语言,拥有一个广泛而强大的库和框架生态系统。本文将比较C++生态系统与其他流行编程语言生态系统中的库和框架,重点关注特性、性能和易用性。库标准库:C++的标准库提供了广泛的数据结构、算法和输入/输出功能。虽然其他语言也有类似的标准库,但C++的库以其效率和灵活性而著称。Boost库:Boost是一个广泛使用的第三方库集合,提供了标准库没有的许多附加功能。它以提供各种跨平台功能而闻名,例如线程、并