您好,登錄后才能下訂單哦!
swoole中,接受數據流處理時,需要將數據流切分成小包才能進行功能的實現,以下為常見的幾個協議
1.EOF協議
EOF協議是用一組固定的,不會出現在數據內的字符作為數據分割的標記,簡稱EOF協議
EOF協議的格式如下:
DATA | EOF | DATA | EOF | ......
2.固定包頭協議
在數據部首加上一組固定格式的數據作為協議頭,稱為固定包體協議
協議頭的格式必須固定,其中需要標明后續數據的長度
長度字段格式只支持"S,L,N,V"和"s,l,n,v"
header | length | header | data |
固定長度 | 數據長度 | 數據頭部 | 數據內容 |
3.函數實現
Swoole-1.8.0新增了對多端口混合協議的支持。Server可以監聽多個端口,每個端口都可以設置不同的協議處理方式(set)和回調函數(on)。SSL/TLS傳輸加密也可以只對特定的端口啟用。
函數原型:
swoole_server_port swoole_server->(string $host, int $port, int type)
其中,$type字段支持一下6種格式:
SWOOLE_TCP / SWOOLE_SOCK_TCP ipv4 TCP協議
SWOOLE_TCP6 / SWOOLE_SOCK_TCP6 ipv6 TCP協議
SWOOLE_UDP / SWOOLE_SOCK_UDP ipv4 UDP協議
SWOOLE_UDP6 / SWOOLE_SOCK_UDP6 ipv6 UDP協議
SWOOLE_UNIX_DGRAM UnixSocket 數據包格式
SWOOLE_UNIX_STREAM UnixSocket 數據流格式
注意,新創建的端口需要設置協議參數,否則會復用swoole_server的協議解析方式
監聽端口的swoole_server_port對象,可以調用set和on方法:
未調用set方法,設置協議處理選項的監聽端口,默認繼承主服務器的設置
未調用on方法,設置回調函數的監聽端口,默認使用主服務器的回調函數
不同監聽端口的回調函數,仍然是相同的Worker進程空間內執行
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。