取消为啥要在Destroy中啊。要rpc啊,难道发出去让unit下载,不用知道unit是不是下线成功?
egametang 这是框架本来的逻辑,没动🤣。主动发起下线可以用rpc,这个是异常断开的情况,服务端20秒后就走到Destroy了,客户端在20秒内重连,服务端到20秒也会断线。实现重连后不断线,怎么处理比较合适呢
fantasy 重连上来,这个组件不会再触发了呀, 应该去停掉那个20s触发下线的逻辑。
evalli 是的,应该是重连逻辑有问题,重连后建立了新连接。客户端异常退出后又重新登录,如何恢复与服务端之前的连接呢
fantasy session未销毁之前,路由本来会有重连, session销毁了, 客户端会创建新的session发起连接, 但是服务器可能还存在实体, 那就直接使用原来的实体,原来的场景。相当于就是重连了。😀
evalli 好的,多谢大佬。那如图,服务端这里应该也用原来的实体吧?用 scene.GetComponent<UnitComponent>().Get(player.Id)怎么获取不到呢?同一账号的player.Id始终是不变的
fantasy 因为玩家根本就没在gateMap上, gateMap只是登录临时用的场景, 登录后玩家会切换到真正要去的图, 在player上面做逻辑, 比如player上面可以保留状态, 玩家处于游戏状态就认为玩家是二次登录。
evalli 我把从gateMap传送到场景之后的Unit保存在PlayerComponent上,重连后取出来用这个Unit连接,还是连接失败。🤣大佬有重连案例没,抄一波作业😂