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