private void Login() { lclient = new ServerUtility.RequestClient(host, port); lclient.UseSendThreadUpdate = true; lclient.OnConnectCompleted = (s, e) => { if (e.Success) { var login = lclient.CreateRequest <C2L_Login, L2C_Login>(); login.RequestMessage.Password = pwd; login.RequestMessage.UserName = userName; login.RequestMessage.Version = ProtoTool.GetVersion(); login.OnCompleted = (su, res) => { if (res.Code == ErrorCode.OK) { GateServer = res.Server; userID = res.UserID; sessionKey = res.Session; lclient.Disconnect(); MEvent.Set(); } }; login.SendRequestSync(); } }; lclient.Connect(); }
private void RequestPlayer() { var request = Client.CreateRequest <C2G_Login, G2C_Login>(); request.RequestMessage.Session = UAppliaction.Singleton.SesssionKey; request.RequestMessage.UserID = UAppliaction.Singleton.UserID; request.RequestMessage.Version = ProtoTool.GetVersion(); request.OnCompleted = (su, r) => { if (r.Code == ErrorCode.OK) { GetPlayerData(r); } else if (r.Code == ErrorCode.NoGamePlayerData) { ShowCreateHero(); } else { UUITipDrawer.Singleton.ShowNotify("GateServer Response:" + r.Code); UAppliaction.Singleton.GotoLoginGate(); } }; request.SendRequest(); }
public void Start() { if (IsRunning) { return; } IsRunning = true; ResourcesLoader.Singleton.LoadAllConfig(configRoot); var listenHandler = new RequestHandle(); //注册responser listenHandler.RegAssembly(this.GetType().Assembly, HandleResponserType.CLIENT_SERVER); ListenServer = new SocketServer(new ConnectionManager(), port); ListenServer.HandlerManager = listenHandler; ListenServer.Start(); Client = new RequestClient(ServiceHost, ServicePort); Client.RegTaskHandlerFromAssembly(this.GetType().Assembly); Client.UseSendThreadUpdate = true; Client.OnConnectCompleted = (s, e) => { if (e.Success) { var request = Client.CreateRequest <B2L_RegBattleServer, L2B_RegBattleServer>(); request.RequestMessage.MaxBattleCount = MaxBattleCount; request.RequestMessage.ServiceHost = ServerHost; request.RequestMessage.ServicePort = this.port; request.RequestMessage.Version = ProtoTool.GetVersion(); request.OnCompleted = (success, r) => { if (success && r.Code == ErrorCode.OK) { ServerID = r.ServiceServerID; Debuger.Log("Server Reg Success!"); } else { Debuger.Log("Can't Regsiter LoginServer!"); Stop(); } }; request.SendRequestSync(); } else { Debuger.Log("Can't connect LoginServer!"); Stop(); } }; Client.OnDisconnect = (s, e) => { Debuger.Log("disconnect from LoginServer!"); Stop(); }; Client.Connect(); MonitorPool.Singleton.Start(); }
public override void Tick() { if (!IsInit) { if (Time.time - start < 0.1f) { return; } IsInit = true; Operation = SceneManager.LoadSceneAsync(MapConfig.LevelName); } if (Operation != null) { if (Operation.isDone) { Operation = null; Client = new RequestClient(ServerInfo.Host, ServerInfo.Port); Client.RegAssembly(this.GetType().Assembly); Client.RegisterHandler(MessageClass.Notify, new BattleNotifyHandler(this)); Client.OnConnectCompleted += (s, e) => { UAppliaction.Singleton.ConnectTime = Time.time; if (e.Success) { var request = Client.R <C2B_JoinBattle, B2C_JoinBattle>(); request.RequestMessage.Session = UAppliaction.Singleton.SesssionKey; request.RequestMessage.UserID = UAppliaction.Singleton.UserID; request.RequestMessage.Version = ProtoTool.GetVersion(); request.RequestMessage.MapID = MapID; request.OnCompleted = (success, response) => { // UUITipDrawer.Singleton.ShowNotify("BattleServer:"+response.Code); if (response.Code != ErrorCode.OK) { UUITipDrawer.Singleton.ShowNotify("BattleServer:" + response.Code); UAppliaction.Singleton.GoBackToMainGate(); } }; request.SendRequest(); } else { UUITipDrawer.Singleton.ShowNotify("Can't login BattleServer!"); UAppliaction.Singleton.GoBackToMainGate(); } }; Client.OnDisconnect += OnDisconnect; Client.Connect(); } } if (Client != null) { Client.Update(); UAppliaction.Singleton.ReceiveTotal = Client.ReceiveSize; UAppliaction.Singleton.SendTotal = Client.SendSize; UAppliaction.Singleton.PingDelay = (float)Client.Delay / (float)TimeSpan.TicksPerMillisecond; } }
protected override void InitModel() { base.InitModel(); //Write Code here bt_submit.onClick.AddListener(() => { var userName = if_userName.text; var pwd = if_pwd.text; var gate = UAppliaction.Singleton.GetGate() as LoginGate; if (gate == null) { return; } var request = gate.Client.CreateRequest <C2L_Login, L2C_Login>(); request.RequestMessage.Password = pwd; request.RequestMessage.UserName = userName; request.RequestMessage.Version = Proto.ProtoTool.GetVersion(); request.OnCompleted = (success, response) => { if (response.Code == ErrorCode.OK) { UAppliaction.Singleton.GoServerMainGate(response.Server, response.UserID, response.Session); } else { UAppliaction.Singleton.ShowError(response.Code); } }; request.SendRequest(); }); bt_reg.onClick.AddListener(() => { var userName = if_userName.text; var pwd = if_pwd.text; var gate = UAppliaction.Singleton.GetGate() as LoginGate; var request = gate.Client.CreateRequest <C2L_Reg, L2C_Reg>(); request.RequestMessage.Password = pwd; request.RequestMessage.UserName = userName; request.RequestMessage.Version = ProtoTool.GetVersion(); request.OnCompleted = (s, r) => { if (r.Code == ErrorCode.OK) { UAppliaction.Singleton.GoServerMainGate(r.Server, r.UserID, r.Session); } else { UUITipDrawer.Singleton.ShowNotify("Server Response:" + r.Code); } }; request.SendRequest(); }); }
public void BeginGame() { client = new ServerUtility.RequestClient(BattleServer.Host, BattleServer.Port); client.UseSendThreadUpdate = true; client.OnConnectCompleted = (s, e) => { if (e.Success) { var login = client.CreateRequest <C2B_JoinBattle, B2C_JoinBattle>(); login.RequestMessage.MapID = 1; login.RequestMessage.Session = sessionKey; login.RequestMessage.UserID = userID; login.RequestMessage.Version = ProtoTool.GetVersion(); login.SendRequestSync(); } }; client.Connect(); }
private void Gate() { gclient = new ServerUtility.RequestClient(GateServer.Host, GateServer.Port); gclient.UseSendThreadUpdate = true; gclient.OnConnectCompleted = (s, e) => { if (e.Success) { var login = gclient.CreateRequest <C2G_Login, G2C_Login>(); login.RequestMessage.Session = sessionKey; login.RequestMessage.UserID = userID; login.RequestMessage.Version = ProtoTool.GetVersion(); login.OnCompleted = (t1, t2) => { Debuger.Log(t2); }; login.SendRequestSync(); var beginBattle = gclient.CreateRequest <C2G_BeginGame, G2C_BeginGame>(); beginBattle.RequestMessage.MapID = 1; beginBattle.OnCompleted = (se, res) => { if (res.Code == ErrorCode.OK) { BattleServer = res.ServerInfo; gclient.Disconnect(); MEvent.Set(); } }; beginBattle.SendRequestSync(); } }; gclient.Connect(); }
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(); }