MQ全称为Message Queue, 消息队列(MQ)是一种应用程
序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们>。消
息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过
队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。其中较为成熟的MQ产品有IBM WEBSPHERE MQ。
var ManagedClientStatus = {
historyMessage: [],
curMessage: null
}
ManagedClientStatus.addMessage = function (clientObj, statusCode) {
var curMessage = {
client: clientObj,
statusCode: statusCode,
createAt: new Date()
}
if (ManagedClientStatus.curMessage === null) {
ManagedClientStatus.curMessage = curMessage
} else {
ManagedClientStatus.historyMessage.push(curMessage)
setTimerPush()
}
}
var setTimerPush = function () {
var setTimer1 = setInterval(function () {
if (ManagedClientStatus.curMessage === null) {
if (ManagedClientStatus.historyMessage.length >0) {
ManagedClientStatus.curMessage = ManagedClientStatus.historyMessage[0]
ManagedClientStatus.historyMessage.splice(0,1)
} else {
clearInterval(setTimer1)
}
}
}, 500)
export default ManagedClientStatus
(这个模块在vue中使用)
created: function(){
//vue中深度检测变量
watch: {
curClientMessage: {
handler(newName, oldName) {
console.log('obj.a changed')
},
deep: true,
immediate:true
}
}
//js本身的检测对象内部变量的变化
var the = this
Object.defineProperty(ManagedClientStatus, 'curMessage', {
get: function () {
return the.curClientMessage
},
set: function (value) {
the.curClientMessage = value
}
})
将this.curClientMessage 的值输出到消息展示模块