[TOC]
* * * * *
## 1 網絡協議文件
~~~
Workerman\Protocols\
ProtocolInterface.php ;協議接口
Frame.php ;frame應用層協議
Http.php ;http應用層協議
Text.php ;text應用層協議
Websocket.php ;websocket應用層協議
Ws.php ;websocket客戶端協議
~~~
## 2 網絡協議接口(ProtocolInterface.php)
>[info] 成員方法
### input():檢查數據包完整性
~~~
public static function input($recv_buffer, ConnectionInterface $connection);
~~~
### decode():解碼數據包數據回調onMessage
~~~
public static function decode($recv_buffer, ConnectionInterface $connection);
~~~
### encode():編碼數據包協議等待發送
~~~
public static function encode($data, ConnectionInterface $connection);
~~~
## 3 frame應用層協議(Frame.php)
>[info] 成員方法
### input():Frame數據格式檢查完整性
~~~
public static function input($buffer, TcpConnection $connection)
~~~
### decode($buffer):Frame數據包解碼
~~~
public static function decode($buffer)
~~~
### encode($buffer):Frame數據包編碼
~~~
public static function encode($buffer)
~~~
## 4 http應用層協議(Http.php)
>[info] 成員方法
### input():Http數據包格式檢查完整性
~~~
public static function input($recv_buffer, TcpConnection $connection)
~~~
### decode():Http數據包解碼
~~~
public static function decode($recv_buffer, TcpConnection $connection)
~~~
### encode():Http數據包編碼
~~~
public static function encode($content, TcpConnection $connection)
~~~
## 5 text應用層協議(Text.php)
>[info] 成員方法
### input():Text數據包格式檢查完整性
public static function input($buffer, TcpConnection $connection)
### encode():encode數據包編碼
public static function encode($buffer)
### decode():decode數據包解碼
public static function decode($buffer)
## 6 Websocket應用層協議(Websocket.php)
>[info] 成員方法
### input():Text數據包格式檢查完整性
~~~
public static function input($buffer, ConnectionInterface $connection)
~~~
### encode():encode數據包編碼
~~~
public static function encode($buffer, ConnectionInterface $connection)
~~~
### decode():decode數據包解碼
~~~
public static function decode($buffer, ConnectionInterface $connection)
~~~
### dealHandshake()握手處理
~~~
protected static function dealHandshake($buffer, $connection)
~~~
### parseHttpHeader()解析http頭
~~~
protected static function parseHttpHeader($buffer)
~~~
## 7 Ws客戶端協議(Ws.php)
>[info] 成員變量
~~~
;協議最小頭部
const MIN_HEAD_LEN = 2;
;blob格式
const BINARY_TYPE_BLOB = "\x81";
;array格式
const BINARY_TYPE_ARRAYBUFFER = "\x82";
~~~
>[info] 成員方法
### input() 數據包完整性檢查
~~~
public static function input($buffer, $connection)
~~~
### encode() 數據包編碼
~~~
public static function encode($payload, $connection)
~~~
### decode() 數據包解碼
~~~
public static function decode($bytes, $connection)
~~~
### sendHandshake()發送握手協議
~~~
public static function sendHandshake($connection)
~~~
### dealHandshake()處理握手協議
~~~
public static function dealHandshake($buffer, $connection)
~~~
## 8 應用協議總結
應用協議負責數據包數據的格式解析。