问题描述
华为联机对战服务玩家快速匹配后,不同玩家收到的同一房间内玩家列表不同。比如是1V1游戏模式,两个玩家通过Client.matchPlayer匹配成功后,回调中的room实例中玩家列表不一致,房主收到的room实例中只有1个玩家,非房主收到的room实例中有2个玩家。
问题分析
和华为技术人员沟通分析原因是:
玩家匹配过程中,一旦匹配成功,后台会将某一个玩家会作为房主创建一个房间,另一个玩家加入到这个房间中。房主创建房间时只有自身一个玩家,所以返回的room实例是有自己。另一个玩家拿到的room实例是两个玩家。
解决方案
Client.matchPlayer回调后,如果有新的玩家加入到房间,其他所有玩家都会收到Room.onJoin回调,建议在该回调中调用刷新房间接口Room.update,以保证所有玩家都是获取到最新的房间信息。
华为问题提单地址:
https://developer.huawei.com/consumer/cn/support/feedback/#/add/89?level2=201650609502456486