//用户全局消息分发方法
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;