public DataBaseContext.GameDb GetDBContext() { var db = new DataBaseContext.GameDb(Connection); if (NetProtoTool.EnableLog) { db.Log = Console.Out; } return(db); }
public void Start() { if (IsRunning) { return; } MonitorPool.Singleton.Start(); ResourcesLoader.Singleton.LoadAllConfig(this.configRoot); IsRunning = true; //同时对外对内服务器不能使用全部注册 var listenHandler = new RequestHandle(); //2 对外 listenHandler.RegAssembly(this.GetType().Assembly, HandleResponserType.CLIENT_SERVER); ListenServer = new SocketServer(new ConnectionManager(), port); ListenServer.HandlerManager = listenHandler; ListenServer.Start(); var serviceHandler = new RequestHandle(); serviceHandler.RegAssembly(this.GetType().Assembly, HandleResponserType.SERVER_SERVER); ServiceServer = new SocketServer(new ConnectionManager(), ServicePort); ServiceServer.HandlerManager = serviceHandler; ServiceServer.Start(); Client = new RequestClient(LoginHost, LoginPort); Client.RegTaskHandlerFromAssembly(this.GetType().Assembly); Client.UseSendThreadUpdate = true; Client.OnConnectCompleted = (s, e) => { if (e.Success) { int currentPlayer = 0; using (var db = new DataBaseContext.GameDb(Connection)) { currentPlayer = db.TBGAmePlayer.Count(); } var request = Client.CreateRequest <G2L_Reg, L2G_Reg>(); request.RequestMessage.ServerID = ServerID; request.RequestMessage.Port = this.port; request.RequestMessage.Host = serverHostName; request.RequestMessage.ServiceHost = ServiceHost; request.RequestMessage.ServicesProt = ServicePort; request.RequestMessage.MaxPlayer = 100000; //最大玩家数 request.RequestMessage.CurrentPlayer = currentPlayer; request.RequestMessage.Version = ProtoTool.GetVersion(); request.OnCompleted = (success, r) => { if (success && r.Code == ErrorCode.OK) { Debuger.Log("Server Reg Success!"); } }; request.SendRequestSync(); } else { Debuger.Log("Can't connect LoginServer!"); Stop(); } }; Client.OnDisconnect = (s, e) => { Debuger.Log("Can't connect LoginServer!"); Stop(); }; Client.Connect(); }