純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中的類別庫

26 May 2023

PHP是一種非常流行的開源腳本語言,它廣泛地用於Web開發。 PHP提供了許多功能強大的類別庫,這些類別庫為Web開發者提供了許多便利。在本文中,我們將介紹PHP中的一些常見類別庫和它們的用法。 StandardPHPLibrary(SPL)SPL是PHP的標準類別庫,提供了許多解決問題的類別和介面。這些類別包含了幾乎所有PHP開發中可能需要的資料結構和演算法,例如:堆

常用的PHP類庫 常用的PHP類庫

22 Nov 2016

以下是一些非常有用的PHP類別庫,相信一定可以為你的WEB開發提供更好和更快速的方法。 圖表庫 下面的類別庫可以讓你很簡的創建複雜的圖表和圖片。當然,它們需要GD庫的支援。 pChart - 一個可以建立統計圖的函式庫。 Libchart - 這也是一個簡單的統計圖庫。 JpGraph - 一個物件導向的圖片建立類別。 Open Flash Chart - 這是一個基於Flash的統計圖。 …

php如何使用PHP圖片處理類別庫? php如何使用PHP圖片處理類別庫?

02 Jun 2023

PHP圖片處理類別庫是PHP開發者常用的工具之一,它可以幫助我們快速輕鬆地對圖片進行編輯、剪裁、縮放等操作。本文將介紹如何使用PHP圖片處理類別庫。一、什麼是PHP圖片處理類別庫? PHP圖片處理類別庫是為了方便PHP開發者對圖片進行快速處理而開發的一組工具包。它可以處理JPG、PNG、GIF和BMP等圖片格式,實現圖片縮放、旋轉、裁剪等多

php類別庫是什麼 php類別庫是什麼

23 Sep 2019

php類別函式庫是Standard PHP Library(標準PHP類別函式庫),是用來解決典型問題的一組介面與類別的集合。

postgresql資料庫 php實作mysql資料庫備份類 postgresql資料庫 php實作mysql資料庫備份類

29 Jul 2016

postgresql資料庫:postgresql資料庫php實作mysql資料庫備份類別:1.實例化DbBak需要告訴它兩件事:資料伺服器在哪裡($connectid)、備份到哪個目錄($backupDir): require_once('DbBak.php') ; require_once('TableBak.php'); $connectid = mysql_connect('localhost','root','123456'); $backupDir =

如何有效地使用 PHP 函數庫中的不同類別? 如何有效地使用 PHP 函數庫中的不同類別?

26 Apr 2024

PHP函數庫包含以下類別:核心類別:基本類型、數學、字串、陣列日期和時間類別:日期、時間、時區檔案和目錄類別:檔案、目錄網路類別:套接字、URL、HTTP安全類別:加密、雜湊、隨機數其他類別:異常、調試、影像

See all articles