| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420 |
- import Connect from './Connect';
- import onfire from '../framework/onfire';
- import Common from '../common/Common';
- import Event from '../net/Event';
- import ConstMsgId from '../net/ConstMsgId';
- import LogicUnitManager from '../framework/LogicUnitManager';
- import DataModelManager from '../framework/DataModelManager';
- import NetConfig from '../net/NetConfig';
- import Define from '../common/Define';
- cc.game.config.showFPS = false
- export default class GameProcessManager
- {
- constructor()
- {
- cc.log("constructor GameProcessManager start ")
- if( GameProcessManager.unique !== undefined ){
- return GameProcessManager.unique;
- }
- if(CC_WECHATGAME)
- {
- // H5SDK.init({
- // wxappid: Common.appid,
- // gameVersion:'1.0.3'
- // });
- } //初始化监听回调函数
- this._gameConnect = new Connect("",false)
- this._lum = LogicUnitManager;
- this._ddm = DataModelManager;
- this.socketType = Define.SOCKET_TYPE.GAME
- this.playerInfoModel = this._ddm.getModel('PlayerInfoModel');
- //this.loadProto();
- this._socketConnectOkCallback = null
- // if(CC_JSB && cc.sys.OS_ANDROID === cc.sys.os)
- // {
- // if(NetConfig.AndroidMainAddress.length<=1)
- // {
-
- // this.createSocket(NetConfig.AndroidMainAddress[0].address,null,Define.SOCKET_TYPE.PLAZA);
- // }
- // else
- // {
- // var idx = Math.floor((Math.random() * NetConfig.AndroidMainAddress.length)) ;
- // this.createSocket(NetConfig.AndroidMainAddress[idx].address,null,Define.SOCKET_TYPE.PLAZA);
-
- // }
- // }
- // else
- // {
- // if(NetConfig.mainAddress.length<=1)
- // {
-
- // this.createSocket(NetConfig.mainAddress[0].address,null,Define.SOCKET_TYPE.PLAZA);
- // }
- // else
- // {
- // var idx = Math.floor((Math.random() * NetConfig.mainAddress.length)) ;
- // this.createSocket(NetConfig.mainAddress[idx].address,null,Define.SOCKET_TYPE.PLAZA);
-
- // }
- // }
-
-
- cc.log("constructor GameProcessManager end ")
- GameProcessManager.unique = this
- //this._onProtoLoaded()
- }
- createSocket(url,successCallback,socketType)
- {
- // if(this._gameConnect)
- // {
- // this._gameConnect.close()
- // }
- this.socketType = socketType
- this._socketConnectOkCallback = successCallback
- this._gameConnect._url = url
- this._gameConnect.open(false);
- this._gameConnect._socketType = socketType
- this._gameConnect.off(Event.SOCKET_MSG.DATA)
- this._gameConnect.off(Event.SOCKET_MSG.OPEN)
- this._gameConnect.off(Event.SOCKET_MSG.RECONNECT_START)
- this._gameConnect.off(Event.SOCKET_MSG.RECONNECT_OK)
- this._gameConnect.on(Event.SOCKET_MSG.DATA,this.onData.bind(this),this)
- this._gameConnect.on(Event.SOCKET_MSG.OPEN,this.onOpen.bind(this),this)
- this._gameConnect.on(Event.SOCKET_MSG.RECONNECT_START,this.onReConnectStart.bind(this),this)
- this._gameConnect.on(Event.SOCKET_MSG.RECONNECT_OK,this.onConnectOk.bind(this),this)
- }
- closeSocket()
- {
- this._gameConnect.close()
-
- }
- getSocketState()
- {
- return this._gameConnect.getConnectState()
- }
- onData(sender,msg)
- {
- var wMainCmdID = msg[0]
- var wSubCmdID = msg[1]
- var buf = msg[2]
- // console.log('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%');
- // Common.Print("GameProcessManager onData msg wMainCmdID :" + wMainCmdID + "wSubCmdID:" + wSubCmdID);
-
- // if(wMainCmdID === 0 && wSubCmdID === 1)
- // {
- // this._gameConnect.close()
- // }
- if(this.socketType === Define.SOCKET_TYPE.PLAZA ) // 大厅socket
- {
- if (ConstMsgId.MDM_MB_LOGON === wMainCmdID) {
- if (ConstMsgId.SUB_MB_LOGON_WX === wSubCmdID) {
- var str = Common.ab2str(buf)
- Common.InspectPrint(str)
- this._lum.getBehavior('LoginBehavior').setData(wMainCmdID,wSubCmdID,str)
- this._lum.getBehavior('LoginBehavior').emit(Event.COM_MSG.AUTH_OK,str)
- } else if (ConstMsgId.SUB_MB_LOGON_SUCCESS === wSubCmdID) {
- this._lum.getBehavior('LoginBehavior').setData(wMainCmdID,wSubCmdID,buf)
- this._lum.getBehavior('LoginBehavior').emit(Event.CPT_MSG.LOGON_SUCCESS,buf)
- } else if (ConstMsgId.SUB_MB_LOGON_FAILURE === wSubCmdID) {
- this._lum.getBehavior('LoginBehavior').setData(wMainCmdID,wSubCmdID,buf);
- }
- } else if (ConstMsgId.MDM_GP_LOGON === wMainCmdID) {
- this._lum.getBehavior('LoginBehavior').setData(wMainCmdID,wSubCmdID,buf)
- } else if (ConstMsgId.MDM_MB_SERVER_LIST === wMainCmdID) {
- if (ConstMsgId.SUB_MB_LIST_SERVER === wSubCmdID) {
- this._lum.getBehavior('BattleBehavior').setData(wMainCmdID,wSubCmdID,buf)
- this._lum.getBehavior('BattleBehavior').emit(Event.CPT_MSG.SERVER_LIST,buf)
- }
- } else if (ConstMsgId.MDM_GP_USER_SERVICE === wMainCmdID) {
- if (ConstMsgId.SUB_GP_GROWLEVEL_PARAMETER === wSubCmdID) {
- this._lum.getBehavior('LoginBehavior').setData(wMainCmdID, wSubCmdID, buf);
- }
- }
- }
- else if(this.socketType === Define.SOCKET_TYPE.GAME) //游戏socket
- {
- if (ConstMsgId.MDM_GR_LOGON === wMainCmdID)//
- {
- console.log("ConstMsgId.MDM_GR_LOGON")
- this._lum.getBehavior('BattleBehavior').setData(wMainCmdID,wSubCmdID,buf)
- }
- else if (ConstMsgId.MDM_GR_CONFIG === wMainCmdID)//
- {
- this._lum.getBehavior('BattleBehavior').setData(wMainCmdID,wSubCmdID,buf)
- }
- else if (ConstMsgId.MDM_GR_USER === wMainCmdID)//
- {
- this._lum.getBehavior('BattleBehavior').setData(wMainCmdID,wSubCmdID,buf)
- }
- else if(ConstMsgId.MDM_GR_STATUS === wMainCmdID) //桌子状态
- {
- this._lum.getBehavior('BattleBehavior').setData(wMainCmdID,wSubCmdID,buf)
- }
- else if(ConstMsgId.MDM_GF_FRAME === wMainCmdID) //游戏状态
- {
- this._lum.getBehavior('BattleBehavior').setData(wMainCmdID,wSubCmdID,buf)
- }
- else if(ConstMsgId.MDM_GF_GAME === wMainCmdID)// 游戏协议
- {
- this._lum.getBehavior('BattleBehavior').setData(wMainCmdID,wSubCmdID,buf)
- }
- else if(ConstMsgId.MDM_GR_INSURE === wMainCmdID)
- {
- this._lum.getBehavior('BattleBehavior').setData(wMainCmdID,wSubCmdID,buf)
- }
- }
- // else if (msgId == ConstMsgId.SC.StartRoundNotify)// 开始第n轮(第n题)答题
- // {
-
- // this._lum.getBehavior('BattleBehavior').emit(Event.CPT_MSG.ROUND_START,pb);
- // }
- // else if (msgId == ConstMsgId.SC.AnswerResponse)// 收到自己第n轮(第n题)答题反馈
- // {
- // this._lum.getBehavior('BattleBehavior').setData(msgId, pb);
- // this._lum.getBehavior('BattleBehavior').emit(Event.CPT_MSG.ANSWER_RESPONCE,pb);
- // }
- // else if (msgId == ConstMsgId.SC.RoundAnswerEndNotify)// 收到第n轮答题结束
- // {
- // this._lum.getBehavior('BattleBehavior').setData(msgId, pb);
- // this._lum.getBehavior('BattleBehavior').emit(Event.CPT_MSG.ROUND_END,pb);
- // }
- // else if (msgId == ConstMsgId.SC.AnswerBattleEndingNotify)// 收到答题对局结束
- // {
- // this._lum.getBehavior('BattleBehavior').setData(msgId, pb);
- // this._lum.getBehavior('BattleBehavior').emit(Event.CPT_MSG.BATTLE_END,pb);
-
- // }
- // else if (msgId == ConstMsgId.SC.UnMatchResponse)
- // {
- // this._lum.getBehavior('BattleBehavior').emit(Event.CPT_MSG.UNMATCH,pb);
- // }
- // else if (msgId == ConstMsgId.SC.BattleAgainResponse)
- // {
- // this._lum.getBehavior('BattleBehavior').emit(Event.CPT_MSG.BATTLE_AGAIN, pb);
- // }
- // else if (msgId == ConstMsgId.SC.LeaveBattleResponse)
- // {
- // this._lum.getBehavior('BattleBehavior').emit(Event.CPT_MSG.LEAVE_BATTLE, pb);
- // }
- // else if (msgId == ConstMsgId.SC.PlayerLeaveNotify)
- // {
- // this._lum.getBehavior('BattleBehavior').emit(Event.CPT_MSG.PLAVER_LEAVE, pb);
- // }
- // else if (msgId == ConstMsgId.SC.PlayerBattleAgainNotify)
- // {
- // this._lum.getBehavior('BattleBehavior').emit(Event.CPT_MSG.BATTLE_AGAIN_READY, pb);
- // }
- // else if (msgId == ConstMsgId.SC.RoleBaseInfoNotify)
- // {
- // this._lum.getBehavior('LoginBehavior').setData(msgId,pb);
- // this._lum.getBehavior('LoginBehavior').emit(Event.CPT_MSG.ROLE_BASEINFO_NOTIFY,pb);
- // }
- // else if (msgId == ConstMsgId.SC.CreateFriendPkRoomResponse)
- // {
- // this._lum.getBehavior('LoginBehavior').emit(Event.CPT_MSG.CREATE_FRIEND_PK_ROOM, pb);
- // }
- // else if (msgId == ConstMsgId.SC.EnterFriendPkRoomResponse)
- // {
- // console.log('Event.CPT_MSG.ENTER_FRIEND_PK_ROOM');
- // this._lum.getBehavior('LoginBehavior').setData(msgId,pb);
- // this._lum.getBehavior('LoginBehavior').emit(Event.CPT_MSG.ENTER_FRIEND_PK_ROOM, pb);
- // }
- // // else if (msgId == ConstMsgId.SC.PullStrengthInfoResponse)
- // // {
- // // this._lum.getBehavior('LoginBehavior').setData(msgId,pb);
- // // this._lum.getBehavior('LoginBehavior').emit(Event.CPT_MSG.REFRESH_STRENGTH, pb);
- // // }
- // else if(msgId == ConstMsgId.SC.InformResponse)
- // {
- // this._lum.getBehavior('BattleBehavior').emit(Event.CPT_MSG.INFORM_RESPONSE, pb);
- // }
- // else if(msgId == ConstMsgId.SC.PlayerLoadingRateNotify)
- // {
- // this._lum.getBehavior('BattleBehavior').emit(Event.CPT_MSG.LOADING_RATE_NOTIFY, pb);
- // }
- // else if(msgId == ConstMsgId.SC.PlayerLoadingCompleteNotify)
- // {
- // this._lum.getBehavior('BattleBehavior').emit(Event.CPT_MSG.LOADING_COMPLETE_NOTIFY, pb);
- // }
- // else if(msgId == ConstMsgId.SC.CreateTeamResponse)
- // {
- // this._lum.getBehavior('LoginBehavior').emit(Event.CPT_MSG.CREATE_TEAM_RESPONSE, pb);
- // }
- // else if(msgId == ConstMsgId.SC.JoinTeamResponse)
- // {
- // this._lum.getBehavior('LoginBehavior').emit(Event.CPT_MSG.JOIN_TEAM_RESPONSE, pb);
- // }
- // else if(msgId == ConstMsgId.SC.JoinTeamNotify)
- // {
- // this._lum.getBehavior('LoginBehavior').emit(Event.CPT_MSG.JOIN_TEAM_NOTIFY, pb);
- // }
- // else if(msgId == ConstMsgId.SC.LeaveTeamNotify)
- // {
- // this._lum.getBehavior('LoginBehavior').emit(Event.CPT_MSG.LEAVE_TEAM_NOTIFY, pb);
- // }
- // else if (msgId == ConstMsgId.SC.WeeklySettleNotify)
- // {
- // this._lum.getBehavior('LoginBehavior').setData(msgId, pb);
- // }
-
- }
-
- showWXUserinfoBtn()
- {
- this._lum.getBehavior('LoginBehavior').emit(Event.COM_MSG.SHOW_WX_LOGIN_BTN, {show:true});
- var that = this;
- let userinfoBtn = H5SDK.createUserInfoButton({
- type: 'text',
- text: '',
- style: {
- left: 0,
- top: 0,
- width: Common.wxWindowWidth,
- height: Common.wxwindowHeight,
- lineHeight: 40
- // backgroundColor: '#00ff00',
- // color: '#ffffff',
- // textAlign: 'center',
- // fontSize: 16,
- // borderRadius: 4,
- }
- });
-
- userinfoBtn.onTap(function (res) {
- console.log('userinfoBtn.onTap:' + JSON.stringify(res));
- if(res.hasOwnProperty('userInfo'))
- {
- userinfoBtn.hide()
- console.log('res.userInfo: ' + JSON.stringify(res.userInfo));
- that.loginWX(res.userInfo);
- that.playerInfoModel.setSelfWXPlayerInfo(res.userInfo);
- that._lum.getBehavior('LoginBehavior').emit(Event.COM_MSG.AUTH_OK,{});
- that.login(false);
- }
- else
- {
- console.log('userinfoBtn.onTap: auth fail' );
- }
- });
- }
-
- loginWX(userInfo)
- {
- console.log('loginWX(userInfo):' + JSON.stringify(userInfo));
- this._lum.getBehavior("LoginBehavior").hasLoginWX = true;
- console.log('loginWX(userInfo) 1:' );
-
-
- console.log('loginWX(userInfo) 2:' );
- //this.login(false);
-
- }
-
- onOpen()
- {
- // if (CC_WECHATGAME)
- // {
- // this.getCode(false);
- // }
- // else
- // {
- // this.login(false);
- // }
- console.log("onOpen")
-
- if(this.socketType == Define.SOCKET_TYPE.PLAZA)
- {
- // this._lum.getBehavior('LoginBehavior').login()
- }
- else if(this.socketType == Define.SOCKET_TYPE.GAME)
- {
- this._lum.getBehavior('BattleBehavior').onSocketLoginGameServer()
- }
- this._lum.getBehavior('LoginBehavior').emit(Event.SOCKET_MSG.OPEN, {});
- if( (this._socketConnectOkCallback && typeof(this._socketConnectOkCallback)==="function"))
- {
- this._socketConnectOkCallback()
- this._socketConnectOkCallback = null
- }
- }
- onReConnectStart()
- {
- }
- onConnectOk()
- {
- // this._lum.getBehavior('BattleBehavior').needCheckConnectGameing = true
- this._lum.getBehavior('BattleBehavior').emit(Event.SOCKET_MSG.RECONNECT_OK, {});
- }
- loadProto()
- {
- var protoFiles = [
- ["resources/proto/client_request.proto", "./client_request.proto"],
- ["resources/proto/client_response.proto", "./client_response.proto"]
- ];
- this._gameConnect.loadProto(protoFiles,this._onProtoLoaded.bind(this));
- }
- _onProtoLoaded()
- {
- this._gameConnect.open();
- }
- sendMsg(msg)
- {
- this._gameConnect.sendMsg(msg);
- }
-
- }
|