首頁 >php框架 >Swoole >swoole如何取得uid

swoole如何取得uid

尚
原創
2019-12-13 16:56:514792瀏覽

swoole如何取得uid

swoole中可以使用Server->bind取得uid,Server->bind將連線綁定一個使用者定義的UID,可以設定dispatch_mode=5設定以此值進行hash固定分配。可以保證某一個UID的連線全部會被分配到同一個Worker進程。

function Server->bind(int $fd, int $uid);

$fd:連接的ID

$uid:要綁定的UID,必須為非0的數字

未綁定UID時預設使用fd取模進行分配

同一個連接只能被bind一次,如果已經綁定了UID,再次呼叫bind會回傳false
可以使用$serv->getClientInfo($fd) 查看連接所綁定UID的值
僅在設定dispatch_mode=5時有效

在預設的dispatch_mode=2設定下,Server會依照socket fd來指派連線資料到不同的Worker進程。因為fd是不穩定的,一個客戶端斷開後重新連接,fd會改變。

這樣這個客戶端的資料就會被分配到別的Worker。使用bind之後就可以依照使用者定義的UID進行分配。即使斷線重連,相同UID的TCP連線資料會被指派相同的Worker進程。

推薦學習: swoole影片教學

#

以上是swoole如何取得uid的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn