84. 2023-10-29周总结

  1. 停服流程
  2. 增加LineNetPackageSerializer和RawNetPackage
  3. 面试沟通问题
  4. debugconsole

Could not determine the dependencies of task ‘:unityLibrary:CSJ.androidlib:compileDebugAidl’.

Installed Build Tools revision 32.0.0 is corrupted. Remove and install again using the SDK Manager.

https://stackoverflow.com/questions/68387270/android-studio-error-installed-build-tools-revision-31-0-0-is-corrupted

1. 停服流程

为我们服务器增加了安全停服流程,在接收到停服指令之后,会进行一系列步骤:

  1. 关闭GateServer,防止有新的连接进入(这里涉及到客户端连接时候的提示不应该提示连接失败,而是提示已经停服)
  2. 调用所有Manager的停服回调,回调分三步:
    • 第一步是BeforeStop,通知即将停服了,每个Manager做相应的处理,比如LoginMgr设置停服状态,之后登录的账号将返回错误,PlayerMgr将踢所有人下线,并将Player进行退出处理等等。
    • 第二步是在BeforeStop之后两分钟开始Stop(两分钟是为了确保一些异步已经处理完成了),所有Manager关闭服务,清理资源
    • 第三步是销毁所有Entity
  3. 关闭其他服务,等所有服务关闭完成之后退出进程。

2. 增加LineNetPackageSerializer和RawNetPackage

为了支持DebugConsole,对PackageSerializer和NetPackage扩展了序列化和对应的网络包

  • LineNetPackageSerializer:Tcp收到’\n’时进行分包
  • RawNetPackage:分包得到的什么内容就存什么内容

3. 面试沟通问题

和老大一起面试的时候,老大提出我的一些面试问题,自己以后面试的过程中也需要注意下,一个是沟通时应该要看着面试者,一个是尊重对方,另外一个是总躲避别人的视线会让人感觉你不自信,很紧张。这是我比较大的问题,与人沟通的时候跟别人对视的时候会让我不太舒服,想着要逃避视线。以后要刻意强迫自己不挪开视线,慢慢锻炼。

另外一个问题就是沟通措辞的说法,比如面试者没听懂的时候可以说,我可能没表达清楚来替换你可能没明白我的意思,让面试者得到更多的尊重。

4. DebugConsole

仿照skynet,给服务器增加了个DebugConsole的服务,目前加了list,stop,call这些功能,后续可以再填充这个服务,比较想加一个echo功能,用来打印某个服务的某个变量,方便查线上问题。