实现自己的本地消息管理

//用户全局消息分发方法
var SystemMsg = {
    //********************************************************** */
    //定义全局消息
    CONST_UI_MSG_ID : 2000,
    CONST_TEST_MSG_ID : 2001,
    CONST_SITDOWN_MSG_ID : 0x0001,//用户坐下
    CONST_USERINFO_MSG_ID : 0x0002,//打开用户信息
    CONST_NNGAMESTATUS_MSG_ID:0x0003,//游戏状态
    CONST_STANDUP_MSG_ID : 0x0004,//起立旁观
    CONST_DISSROOM_MSG_ID : 0x0005,//解散房间按钮
    //********************************************************** */
};


//消息分发方法*************************begin********************************* */
SystemMsg.arrayUserFunc = [];
//添加响应消息
SystemMsg.addMsgHandler = function (msgID, strCodeFileName, pfunc) {
    var msgInfo = {};
    msgInfo.strCodeFileName = strCodeFileName;
    msgInfo.msgID = msgID;//消息ID
    msgInfo.pfunc = pfunc;//回调

    var bFlag = true;
    for (const key in SystemMsg.arrayUserFunc) {
        if (SystemMsg.arrayUserFunc.hasOwnProperty(key)) {
            var element = SystemMsg.arrayUserFunc[key];
            if (element.strCodeFileName === strCodeFileName && element.msgID == msgID) {//如果已经有这个代码文件的绑定回调 就直接赋值 
                element.pfunc = pfunc;
                bFlag = false;
                break;
            }
        }
    }

    if (bFlag) {
        SystemMsg.arrayUserFunc.push(msgInfo);
    }
}

//发送消息
SystemMsg.postMessga = function (msgID, msgData) {
    //如果找到了 这个消息ID才调用该消息绑定的回调
    SystemMsg.arrayUserFunc.forEach(element => {
        if (element.msgID == msgID) {
            element.pfunc(msgData);
        }
    });
}

//删除消息ID注册的回调
SystemMsg.removeMsgHandler = function (strCodeFileName) {
    //如果找到了 这个消息ID才调用该消息绑定的回调
    for (var i = 0; i < SystemMsg.arrayUserFunc.length; i++) {
        var msgInfo = SystemMsg.arrayUserFunc[i];
        if (msgInfo) {
            if (msgInfo.strCodeFileName === strCodeFileName) {
                SystemMsg.arrayUserFunc.splice(i,1);//删除元素
                i--;
            }
        }
    }
}

//消息分发方法**************************end******************************** */

module.exports = SystemMsg;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值