swoole client有什么用

swoole client有什么用

PHP常用socket創建TCP連接,使用CURL創建HTTP連接,為了簡化操作,swoole提供了Client類用于實現客戶端功能,并增加了異步非阻塞模式,讓用戶在客戶端也能使用事件循環。 ? ? ? (推薦學習: swoole視頻教程

作為客戶端使用,Swoole Client可以在FPM環境下或 Apache中使用,但不允許使用Async異步模式,只能使用同步非阻塞模式,異步非阻塞模式僅限CLI模式下使用。

Client提供了TCP/UDP socket的客戶端的封裝代碼,使用時僅需new SwooleClient。

Swoole的socket客戶端對比PHP提供的stream族函數有什么優勢呢?

stream函數存在超時設置的陷阱和Bug,一旦沒有處理好將會導致服務器長時間阻塞。

stream和fread有8192長度限制,無法支持UDP大包。

swoole_client客戶端支持waitall,在知道包長度的情況下可以一次取完不必循環獲取。

swoole_client支持UDP的connect解決了UDP串包的問題

swoole_client是純C的代碼

swoole_client支持異步非阻塞回調

構造方法 constructor

Swoole的Client功能封裝為一個swoole_client類,可通過new swoole_client來創建一個客戶端實例。

原型

swoole_client->__construct( ??int?$sock_type,? ??int?$is_async?=?SWOOLEL_SOCK_SYNC,? ??string?$key);

參數

參數1:int $sock_type

$sock_type 表示socket類型,可使用swoole提供的宏來指定類型。

SWOOLE_TCP?創建TCP?Socket SWOOLE_TCP6?創建IPv6?TCP?Socket SWOOLE_UDP?創建UDP?Socket SWOOLE_UDP6?創建IPv6?UDP?Socket SWOOLE_SSL?開啟SSL加密 SWOOLE_KEEP?開啟連接復用

其中SWOOLE_SSL與SWOOLE_KEEP不能單獨使用,需要與前四個選項共同作用。

//?創建并開啟SSL加密的TCP客戶端 $client?=?new?swoole_client(SWOOLE_TCP?|?SWOOLE_SSL);

? 版權聲明
THE END
喜歡就支持一下吧
點贊5 分享