溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

swoole client的作用

發(fā)布時間:2021-01-16 11:41:43 來源:億速云 閱讀:151 作者:小新 欄目:編程語言

這篇文章將為大家詳細(xì)講解有關(guān)swoole client的作用,小編覺得挺實(shí)用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

PHP常用socket創(chuàng)建TCP連接,使用CURL創(chuàng)建HTTP連接,為了簡化操作,Swoole提供了Client類用于實(shí)現(xiàn)客戶端功能,并增加了異步非阻塞模式,讓用戶在客戶端也能使用事件循環(huán)。      

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

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

Swoole的socket客戶端對比PHP提供的stream族函數(shù)有什么優(yōu)勢呢?

stream函數(shù)存在超時設(shè)置的陷阱和Bug,一旦沒有處理好將會導(dǎo)致服務(wù)器長時間阻塞。

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

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

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

swoole_client是純C的代碼

swoole_client支持異步非阻塞回調(diào)

構(gòu)造方法 constructor

Swoole的Client功能封裝為一個swoole_client類,可通過new swoole_client來創(chuàng)建一個客戶端實(shí)例。

原型

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

參數(shù)

參數(shù)1:int $sock_type

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

SWOOLE_TCP 創(chuàng)建TCP Socket
SWOOLE_TCP6 創(chuàng)建IPv6 TCP Socket
SWOOLE_UDP 創(chuàng)建UDP Socket
SWOOLE_UDP6 創(chuàng)建IPv6 UDP Socket
SWOOLE_SSL 開啟SSL加密
SWOOLE_KEEP 開啟連接復(fù)用

其中SWOOLE_SSL與SWOOLE_KEEP不能單獨(dú)使用,需要與前四個選項(xiàng)共同作用。

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

關(guān)于“swoole client的作用”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI