搜尋
純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 pdo資料庫操作封裝類別程式碼php pdo資料庫操作封裝類別程式碼

25Jul2016

php pdo資料庫操作封裝類別程式碼

PHP QR Code 條碼與二維碼產生類別庫PHP QR Code 條碼與二維碼產生類別庫

25Jul2016

PHP QR Code 條碼與二維碼產生類別庫

如何使用單例模式有效管理 PHP 類別中的資料庫連線?如何使用單例模式有效管理 PHP 類別中的資料庫連線?

03Nov2024

在 PHP 類別中使用 PDO 在您的程式碼中,您嘗試擴展 PDO 類別並在 Foo 類別中實例化它。然而,這...

PHP中如何有效地將PDO整合到類別中進行資料庫互動?PHP中如何有效地將PDO整合到類別中進行資料庫互動?

02Nov2024

將 PDO 合併到資料庫互動類別中擴展 PHP 中的 PDO 類別並不是將 PDO 合併到...的最合適方法。

PHP腳本資料庫功能詳解(下)_PHP教程PHP腳本資料庫功能詳解(下)_PHP教程

21Jul2016

PHP腳本資料庫功能詳解(下)。用類別加快PHP的資料庫開發 資料庫的存取函數較多,使用不當會降低效率,甚至導致錯誤。而PHP的本身就是開放的、可擴充的,很多人為它開

整合了前面的PHP資料庫連線類別~~做成一個分頁類別!_PHP教程整合了前面的PHP資料庫連線類別~~做成一個分頁類別!_PHP教程

21Jul2016

整合了前面的PHP資料庫連線類別~~做成一個分頁類別!。不知道學PHP有沒有前途~哎越寫越沒勁?php Classcreatedb//類的開始{ var$db="localhost";//資料庫位址; var$dbname="root";//用戶名; var$ dbpwd="";//密碼; var$

See all articles