RT。 我想實現(xiàn):
用戶在登錄成功后,給用戶的所有客戶端發(fā)送一條數(shù)據(jù)。(不能使用sendToClientID)
但是經(jīng)過測試,發(fā)現(xiàn)有的時候能發(fā)送成功,有的時候不能發(fā)送成功。
猜測可能是由于joinGroup是異步操作,一旦慢了的話,會導(dǎo)致發(fā)送數(shù)據(jù)的時候還沒有加入分組,導(dǎo)致數(shù)據(jù)發(fā)送失敗。
請問這個能不能改成同步模式?
GatewayWorker里的接口基本上都是異步的,異步的接口不支持同步。 同一個進程里調(diào)用Gateway::joinGroup后調(diào)用Gateway::sendToGoup是能保證joinGroup先于sendToGoup執(zhí)行的,因為這個操作是用隊列來完成的,可以保證先后順序。 系統(tǒng)負載正常的情況下,Gateway::joinGroup是可以認為是瞬間完成的,不會有感官上的延遲。
如果發(fā)送不成功,可以嘗試抓包看下是否發(fā)送過去,有可能是業(yè)務(wù)邏輯bug,也有可能是客戶端bug。
知道了,謝謝大神!