StartConfigComponent
请大家关注我的微博:@NormanLin_BadPixel坏像素
我们发现,这里存了好多的StartConfig,需要特别注意的是,其他的各种设置只有一个,但是MapConfigs跟GateConfigs的设置却是一个链表,说明有多个。我们现在还不知道这些设置是干嘛用的,难道这就是传说中分布式服务器的设置?
我们继续看看Awake方法。
读取对应文件的内容,文件地址由传入进来的参数决定,多条数据间用回车符区分。之后,会把每条数据反序列化为StartConfig对象,具体文件的内容可以去看LocalAllServer.txt文件。
{ "_t" : "StartConfig", "_id" : NumberLong("98547768819754"), "components" : [{ "_t" : "OuterConfig", "Host" : "127.0.0.1", "Port" : 10002, "Host2" : "127.0.0.1" }, { "_t" : "InnerConfig", "Host" : "127.0.0.1", "Port" : 20001 }, { "_t" : "HttpConfig", "Url" : "", "AppId" : 0, "AppKey" : "", "ManagerSystemUrl" : "" }, { "_t" : "DBConfig", "ConnectionString" : "mongodb://127.0.0.1:27017", "DBName" : "Landlords" }], "AppId" : 1, "AppType" : "AllServer", "ServerIP" : "*" }
有人会问,AppId之前的那些数据是啥?别忘了,StartConfig的不知道哪层的父类可是Entity,而Entity里面可是有其他的属性哦,里面就有ID跟components。
之后,会根据AppId把这个启动设置信息存入字典内,再根据AppType给不同的设置赋值。这里需要注意的是,AppType这个枚举类型有Flag特性,所以,AllServer包括了Manager | Realm | Gate | Http | DB | Location | Map | Match
public enum AppType
...
AllServer = Manager | Realm | Gate | Http | DB | Location | Map | Match
关于Flag的特性,之前讲过,不了解的去前面找找或者百度。
最后,会把this.StartConfig设置为字典里键值为传入参数appId的设置。(默认appId = 1)。
后面的几个那么简单的方法就不用我说了吧?