98、Workerman通信框架-protocol協議集介紹

根據之前的知識點,protocol協議的作用是利用傳輸層提供的傳輸服務,為應用程序提供數據格式交互的

1、前提

worker進程,需要設置協議屬性

-如何設置協議

Worker類中listen方法中,根據$this->_socketName獲取協議參數,對數組static::$_builtinTransports進行鍵值判斷:

如果存在,則上層協議為null,$this->transport = $scheme;

相反則判斷,該協議是否是以\\Protocols\\或者\\Workerman\\Protocols\\ 為命名空間的類

2、Protocols目錄結構

98、Workerman通信框架-protocol協議集介紹

3、協議設計

採用面向接口編程,協議設計主要是確定好數據格式. 但是在協議這塊,workerman框架僅僅是設計規範,具體的實現類並不對接口進行實現

3.1、接口類-ProtocolInterface

  • 類概要
98、Workerman通信框架-protocol協議集介紹

  • 靜態方法:解釋

- input:用於計算一個協議包的長度

- decode:用於解包

- encode:用於封包

3.2、Text類

採用\\n作為協議的分隔符號,即格式為

內容1\\n內容2\\n

3.3、Frame類

採用包頭+包體的格式,包頭採用二進制,記錄包頭和包體的長度。格式如下:

一個協議包=包頭(二進制)+包體

3.4、Http類

以\\r\\n為分割符號,格式為 報頭\\r\\n報體

細分格式為

請求行\\r\\n頭部信息\\r\\n\\r\\n報體\\r\\n


分享到:


相關文章: