- 打开所有进程 dotnet Server.dll --AppType=Watcher --Console=1
- 使用Robot或者客户端直接进入地图
- 关掉当前连接的路由进程.观察切换效果
有一个socket连接专门用于寻找可用的路由地址.并且在寻找到地址的同时将自己的conn以及目标gate传给路由.这样可以做到完全不改动框架从连接到建立成功的任何细节 连接已经建立,超时切换路由的时候.很遗憾必须动到框架自带的KChannel.没有想到很优雅的实现.这里的处理方式是
- 关闭超时监听组件.寻找到新的可用路由.并将客户端连接的地址指向新的地址.如果寻址失败直接断开链接
- 将KChannel的IsRouterConnected 路由状态置为需要发送重连信息.这样会以300毫秒的间隔重复发送重连请求.
- gate收到信息.验证成功后将地址改为新的地址.返还重连成功信息.
- 到达client之后.修改IsRouterConnected为true.重连结束.重新添加超时监听组件