PHP常用socket建立TCP連接,使用CURL建立HTTP連接,為了簡化操作,Swoole提供了Client類別用於實現客戶端功能,並增加了非同步非阻塞模式,讓使用者在客戶端也能使用事件循環。 (建議學習: swoole影片教學)
當用戶端使用,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支援非同步非阻塞回呼
#swoole_client支援非同步非阻塞回呼
#swoole_client支援非同步非阻塞回呼
建構方法constructorSwoole的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有什麼用的詳細內容。更多資訊請關注PHP中文網其他相關文章!