-
Notifications
You must be signed in to change notification settings - Fork 29
Chapter 21:NFCConfigModule
NFCConfigModule主要负责加载系统的配置,加载--Plugin获取到的目录下得lua配置, 主要分三部分:
-
首先加载plugin.lua,通过--Server参数,找到对应的服务器加载模块,获取到需要加载的so文件。
当我们使用--Server=TestServer时,找到的就是红圈里的TestServer,将加载libNFKernelPlugin.so,libNFTestPlugin.so两个so文件
-
然后将加载LogConfig.lua, 获取到日志系统的配置,方便打印日志。详情见* NFCLogModule模块: 日志系统
-
然后将加载服务器配置,根据--Server和--ID来加载对应的服务器配置,比如--Server=ProxyServer,--ID=15.100.2.1, 系统将加载ProxyServer.lua, 并找到ServerId = "15.100.2.1"的那个配置:
值得一提的是--Server=AllServer的话,将加载所有的lua配置,因为系统这时候可能要一次性吧整个分布式都启动起来。
-
你可以直接使用,缺陷是只有在module里,或者在有NFIPluginManager指针的地方才可以这么用。
NFServerConfig* pConfig = FindModule<NFIConfigModule>()->GetAppConfig(NF_ST_LOGIN_SERVER);
-
系统使用了NFConfigMgr对
FindModule<NFIConfigModule>()
进行了简单封装,一般都是这么用的:NFServerConfig* pConfig = NFConfigMgr::Instance()->GetAppConfig(NF_ST_LOGIN_SERVER);
-
如果你想获取服务器的配置, 可以通过GetAppConfig+服务器类型ID来获取,当然你只能获取自己的服务器配置,如果你是ProxyServer的plugin,那么你只能获取到ProxyServer的配置,你是LoginServer,你就只能获取LoginServer的配置。如果你在LoginServer调用ProxyServer的配置的话,分布式运行的时候,将会报错崩溃,因为系统没有加载ProxyServer的配置.
-
NFServerConfig这个类用来存取服务器配置: