您好,登錄后才能下訂單哦!
小編給大家分享一下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獲取uid的方法有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。