标题:
如图所示,如果玩家先登录 actorLocationSender会被缓存住, actorLocationSender现在销毁只有超时或者某些异常, 玩家快速下线上线, actorLocationSender会是旧的那个,会导致消息发不出去。这里是没有重发机制的,应该要注册哪里做一次清空缓存。
注册前你先调用移除撒
不是有个RemoveLocation吗
actorLocationSender有重发机制
egametang
最新版本新增的send接口是没有重发机制的。
放removeLocation里面移除旧的actorSender也可以,感觉放AddLocation里面,注册前移除会不会更好些,万一出现下线异常,会出现移除不了。放addLocation至少保证了本次登录消息发送会正常。
调用AddLocation前,先调用RemoveLocation就行了
//发给不会改变位置的actorlocation用这个,这种actor消息不会阻塞发送队列,性能更高 // 发送过去找不到actor不会重试,用此方法,你得保证actor提前注册好了location
看注释这个接口应该不能用于玩家实体 ActorLocation的调用, 玩家没法固定actor位置(场景跳转就变了)