first commit
This commit is contained in:
287
assets/scripts/login/LoginCommand.ts
Normal file
287
assets/scripts/login/LoginCommand.ts
Normal file
@@ -0,0 +1,287 @@
|
||||
import { HttpConfig } from "../config/HttpConfig";
|
||||
import { ServerConfig } from "../config/ServerConfig";
|
||||
import { HttpManager } from "../network/http/HttpManager";
|
||||
import { NetManager } from "../network/socket/NetManager";
|
||||
import { Tools } from "../utils/Tools";
|
||||
import LoginProxy from "./LoginProxy";
|
||||
import { NetEvent } from "../network/socket/NetInterface";
|
||||
import MapCommand from "../map/MapCommand";
|
||||
import { LocalCache } from "../utils/LocalCache";
|
||||
import DateUtil from "../utils/DateUtil";
|
||||
import { EventMgr } from "../utils/EventMgr";
|
||||
import { Md5 } from "../libs/crypto/md5";
|
||||
|
||||
export default class LoginCommand {
|
||||
//单例
|
||||
protected static _instance: LoginCommand;
|
||||
public static getInstance(): LoginCommand {
|
||||
if (this._instance == null) {
|
||||
this._instance = new LoginCommand();
|
||||
}
|
||||
return this._instance;
|
||||
}
|
||||
|
||||
public static destory(): boolean {
|
||||
if (this._instance) {
|
||||
this._instance.onDestory();
|
||||
this._instance = null;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
//数据model
|
||||
protected _proxy: LoginProxy = new LoginProxy();
|
||||
|
||||
constructor() {
|
||||
EventMgr.on(NetEvent.ServerCheckLogin, this.onServerConneted, this);
|
||||
EventMgr.on(HttpConfig.register.name, this.onRegister, this);
|
||||
EventMgr.on(ServerConfig.account_login, this.onAccountLogin, this);
|
||||
EventMgr.on(ServerConfig.role_enterServer, this.onEnterServer, this);
|
||||
EventMgr.on(ServerConfig.account_reLogin, this.onAccountRelogin, this);
|
||||
EventMgr.on(ServerConfig.role_create, this.onRoleCreate, this);
|
||||
EventMgr.on(ServerConfig.account_logout, this.onAccountLogout, this);
|
||||
EventMgr.on(ServerConfig.account_robLogin, this.onAccountRobLogin, this)
|
||||
EventMgr.on(ServerConfig.chat_login, this.onChatLogin, this)
|
||||
|
||||
}
|
||||
|
||||
public onDestory(): void {
|
||||
EventMgr.targetOff(this);
|
||||
}
|
||||
|
||||
//抢登录
|
||||
private onAccountRobLogin(): void{
|
||||
console.log("onAccountRobLogin")
|
||||
EventMgr.emit("robLoginUI");
|
||||
}
|
||||
|
||||
/**注册回调*/
|
||||
private onRegister(data: any, otherData: any): void {
|
||||
console.log("LoginProxy register:", data, otherData);
|
||||
if (data.code == 0) {
|
||||
this.accountLogin(otherData.username, otherData.password);
|
||||
LocalCache.setLoginValidation(otherData);
|
||||
}
|
||||
}
|
||||
|
||||
/**登录回调*/
|
||||
private onAccountLogin(data: any, otherData:any): void {
|
||||
console.log("LoginProxy login:", data , otherData);
|
||||
if (data.code == 0) {
|
||||
// this._proxy.loginData = data.msg;
|
||||
this._proxy.saveLoginData(data.msg);
|
||||
LocalCache.setLoginValidation(otherData);
|
||||
|
||||
|
||||
this.role_enterServer(this._proxy.getSession());
|
||||
EventMgr.emit("loginComplete", data.code);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**进入服务器回调*/
|
||||
private onEnterServer(data: any,isLoadMap:boolean): void {
|
||||
console.log("LoginProxy enter:", data,isLoadMap);
|
||||
//没有创建打开创建
|
||||
if (data.code == 9) {
|
||||
EventMgr.emit("CreateRole");
|
||||
DateUtil.setServerTime(data.msg.time);
|
||||
} else {
|
||||
if(data.code == 0){
|
||||
this._proxy.saveEnterData(data.msg);
|
||||
DateUtil.setServerTime(data.msg.time);
|
||||
|
||||
// var roleData = this._proxy.getRoleData();
|
||||
// this.chatLogin(roleData.rid, data.msg.token, roleData.nickName);
|
||||
|
||||
//进入游戏
|
||||
if(isLoadMap == true){
|
||||
console.log("enterServerComplete");
|
||||
MapCommand.getInstance().enterMap();
|
||||
EventMgr.emit("enterServerComplete");
|
||||
}else{
|
||||
EventMgr.emit(NetEvent.ServerHandShake);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**重连回调*/
|
||||
private onServerConneted(): void {
|
||||
//重新连接成功 重新登录
|
||||
var loginData = this._proxy.getLoginData();
|
||||
var roleData = this._proxy.getRoleData();
|
||||
console.log("LoginProxy conneted:", loginData,roleData);
|
||||
|
||||
if (loginData) {
|
||||
this.account_reLogin(loginData.session);
|
||||
}else{
|
||||
EventMgr.emit(NetEvent.ServerHandShake);
|
||||
}
|
||||
}
|
||||
|
||||
/**重新登录回调回调*/
|
||||
private onAccountRelogin(data: any): void {
|
||||
//断线重新登录
|
||||
console.log("LoginProxy relogin:", data);
|
||||
if(data.code == 0){
|
||||
// EventMgr.emit(NetEvent.ServerHandShake);
|
||||
this.role_enterServer(this._proxy.getSession(),false);
|
||||
}
|
||||
}
|
||||
|
||||
/**创建角色回调*/
|
||||
private onRoleCreate(data: any): void {
|
||||
//重换成功再次调用
|
||||
if (data.code == 0) {
|
||||
this.role_enterServer(this._proxy.getSession());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**登出回调*/
|
||||
private onAccountLogout(data: any): void {
|
||||
//重换成功再次调用
|
||||
if (data.code == 0) {
|
||||
this._proxy.clear();
|
||||
EventMgr.emit("enter_login");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
//聊天登录
|
||||
private onChatLogin(data: any): void{
|
||||
console.log("onChatLogin:",data);
|
||||
}
|
||||
|
||||
public get proxy(): LoginProxy {
|
||||
return this._proxy;
|
||||
}
|
||||
|
||||
/**
|
||||
* register
|
||||
* @param data
|
||||
*/
|
||||
public register(name: string, password: string) {
|
||||
|
||||
var pwd = Md5.encrypt(password);
|
||||
var params = "username=" + name
|
||||
+ "&password=" + pwd
|
||||
+ "&hardware=" + Tools.getUUID();
|
||||
|
||||
console.log("register:", params);
|
||||
var otherData = { username: name, password: password };
|
||||
HttpManager.getInstance().doGet(HttpConfig.register.name, HttpConfig.register.url, params, otherData);
|
||||
}
|
||||
|
||||
/**
|
||||
* login
|
||||
* @param data
|
||||
*/
|
||||
public accountLogin(name: string, password: string) {
|
||||
|
||||
var api_name = ServerConfig.account_login;
|
||||
var pwd = Md5.encrypt(password);
|
||||
|
||||
var send_data = {
|
||||
name: api_name,
|
||||
msg: {
|
||||
username: name,
|
||||
password: pwd,
|
||||
hardware: Tools.getUUID()
|
||||
}
|
||||
};
|
||||
|
||||
console.log("accountLogin:", send_data);
|
||||
var otherData = { username: name, password: password };
|
||||
NetManager.getInstance().send(send_data,otherData);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* create
|
||||
* @param uid
|
||||
* @param nickName
|
||||
* @param sex
|
||||
* @param sid
|
||||
* @param headId
|
||||
*/
|
||||
public role_create(uid: string, nickName: string, sex: number = 0, sid: number = 0, headId: number = 0) {
|
||||
var api_name = ServerConfig.role_create;
|
||||
var send_data = {
|
||||
name: api_name,
|
||||
msg: {
|
||||
uid: uid,
|
||||
nickName: nickName,
|
||||
sex: sex,
|
||||
sid: sid,
|
||||
headId: headId
|
||||
}
|
||||
};
|
||||
NetManager.getInstance().send(send_data);
|
||||
}
|
||||
|
||||
|
||||
public role_enterServer(session: string,isLoadMap:boolean = true) {
|
||||
var api_name = ServerConfig.role_enterServer;
|
||||
var send_data = {
|
||||
name: api_name,
|
||||
msg: {
|
||||
session: session,
|
||||
}
|
||||
};
|
||||
NetManager.getInstance().send(send_data,isLoadMap);
|
||||
}
|
||||
|
||||
/**
|
||||
* 重新登录
|
||||
* @param session
|
||||
*/
|
||||
public account_reLogin(session: string) {
|
||||
var api_name = ServerConfig.account_reLogin;
|
||||
var send_data = {
|
||||
name: api_name,
|
||||
msg: {
|
||||
session: session,
|
||||
hardware: Tools.getUUID()
|
||||
}
|
||||
};
|
||||
NetManager.getInstance().send(send_data);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* logout
|
||||
*/
|
||||
public account_logout():void{
|
||||
var api_name = ServerConfig.account_logout;
|
||||
var send_data = {
|
||||
name: api_name,
|
||||
msg: {
|
||||
|
||||
}
|
||||
};
|
||||
NetManager.getInstance().send(send_data);
|
||||
}
|
||||
|
||||
|
||||
public chatLogin(rid:number, token: string, nick_name:string = ''):void{
|
||||
var api_name = ServerConfig.chat_login;
|
||||
var send_data = {
|
||||
name: api_name,
|
||||
msg: {
|
||||
rid:rid,
|
||||
token:token,
|
||||
nickName:nick_name
|
||||
}
|
||||
};
|
||||
|
||||
console.log("send_data:", send_data);
|
||||
NetManager.getInstance().send(send_data);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user