protected void SetupLoginHandler() { // The client sends AddPlayer and then LoginRequest, instead we'll use the SessionToken to determine // which Game the connection is for AddPlayerMessage addPlayerMessage = null; Serializer.RegisterHandler(37, msg => { addPlayerMessage = (AddPlayerMessage)msg; }); Serializer.RegisterHandler((short)MyMsgType.LoginRequest, msg => { var loginReq = (LoginRequest)msg; SessionToken = Convert.ToInt64(loginReq.SessionToken); //PlayerInfo = SessionManager.Get(SessionToken); PlayerId = loginReq.PlayerId; GameManagerHolder.AssignServer(this); // Send login ok response Send((short)MyMsgType.LoginResponse, new LoginResponse { Reconnecting = false, Success = true }); }); }
protected void SetupLoginHandler() { // The client sends AddPlayer and then LoginRequest, instead we'll use the session token to determine // which Game the connection is fore AddPlayerMessage addPlayerMessage = null; Serializer.RegisterHandler(37, msg => { addPlayerMessage = (AddPlayerMessage)msg; }); Serializer.RegisterHandler(51, msg => { var loginReq = (LoginRequest)msg; if (addPlayerMessage == null) { Log.Print(LogType.Error, "Received LoginRequest before AddPlayerMessage!"); Disconnect(); return; } var gameManager = GameManagerHolder.FindGameManager(loginReq); if (gameManager == null) { Log.Print(LogType.Error, $"Didn't find a GameManager for {loginReq}'"); Disconnect(); return; } Send(52, new LoginResponse { Reconnecting = false, Success = true }); gameManager.AddPlayer(this, loginReq, addPlayerMessage); }); }