小編給大家分享一下swoole獲取uid的方法,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了呈貢免費(fèi)建站歡迎大家使用!swoole中可以使用Server->bind獲取uid,Server->bind將連接綁定一個用戶定義的UID,可以設(shè)置dispatch_mode=5設(shè)置以此值進(jìn)行hash固定分配??梢员WC某一個UID的連接全部會分配到同一個Worker進(jìn)程。
function Server->bind(int $fd, int $uid);
$fd:連接的ID
$uid:要綁定的UID,必須為非0的數(shù)字
未綁定UID時默認(rèn)使用fd取模進(jìn)行分配
同一個連接只能被bind一次,如果已經(jīng)綁定了UID,再次調(diào)用bind會返回false
可以使用$serv->getClientInfo($fd) 查看連接所綁定UID的值
僅在設(shè)置dispatch_mode=5時有效
在默認(rèn)的dispatch_mode=2設(shè)置下,Server會按照socket fd來分配連接數(shù)據(jù)到不同的Worker進(jìn)程。因?yàn)閒d是不穩(wěn)定的,一個客戶端斷開后重新連接,fd會發(fā)生改變。
這樣這個客戶端的數(shù)據(jù)就會被分配到別的Worker。使用bind之后就可以按照用戶定義的UID進(jìn)行分配。即使斷線重連,相同UID的TCP連接數(shù)據(jù)會被分配相同的Worker進(jìn)程。
看完了這篇文章,相信你對swoole獲取uid的方法有了一定的了解,想了解更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!