您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關swoole client的作用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
PHP常用socket創建TCP連接,使用CURL創建HTTP連接,為了簡化操作,Swoole提供了Client類用于實現客戶端功能,并增加了異步非阻塞模式,讓用戶在客戶端也能使用事件循環。
作為客戶端使用,Swoole Client可以在FPM環境下或 Apache中使用,但不允許使用Async異步模式,只能使用同步非阻塞模式,異步非阻塞模式僅限CLI模式下使用。
Client提供了TCP/UDP socket的客戶端的封裝代碼,使用時僅需new Swoole\Client。
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);
關于“swoole client的作用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。