国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

GatewayWorker中client_id和uid之間的關(guān)系

walkor

有人問這個問題,在這里解答下,作為知識沉淀,方便其他人查閱。
問:
GatewayWorker中有client_id又有uid,client_id和uid分別是指什么?它們之間是什么關(guān)系?

10043 4 0
4個回答

walkor 打賞

區(qū)別
client_id實際上是一個socket連接id,用來全局(整個服務(wù)器集群)唯一標(biāo)識一個socket通訊通道。

uid也就是user_id,用來唯一標(biāo)識一個用戶,類似于QQ號碼。

為什么要用兩種id?
拿QQ來舉例,QQ允許手機和PC同時在線,那么就有兩個通訊通道,也就是兩個client_id。
如果只想給手機QQ發(fā)消息,那么只需要調(diào)用Gateway::sendToClient('當(dāng)前手機QQ的client_id', $message)
如果想給手機和PC同時發(fā)消息,則需要調(diào)用 Gateway::sendToUid(‘QQ’,$message);

總結(jié):
client_id可以看做是一個通訊通道的id,可以指定具體通道推送數(shù)據(jù)。
當(dāng)用戶下線時,對應(yīng)的通道id也就是client_id也就失效了,用戶重新上線時會重新分配一個未使用的client_id標(biāo)記當(dāng)前的通訊通道。也就是說client_id是有生命周期的。

uid是一個用戶的唯一id,這個id一般永遠有效。

另外一般現(xiàn)有系統(tǒng)都有自己的用戶id系統(tǒng),當(dāng)gatewayWorker要和這個系統(tǒng)結(jié)合時,可以使用bindUid($client_id, $uid)將用戶與通道綁定,就可以方便的通過uid和用戶通訊了。

  • zk33311 2019-11-14

    uid是不是也可以理解為另類組吧

chinaxhjsz

大佬我想解決下 workerman 存入session的問題 我很急 大佬可以幫我解決下嗎 QQ 602760880 已經(jīng)好久了

  • 暫無評論
shiqingyu

大佬你好 如果不使用GatewayWorker 的客戶端 只使用服務(wù)端 其他語言能通過websorket協(xié)議直接調(diào)用嗎

  • 暫無評論
walkor 打賞

可以

  • 暫無評論
年代過于久遠,無法發(fā)表回答
??