新版已更新websocket,需求如下:
根据列表里面数据到期日期,调用websocket,给指定用户发送消息提醒,比如:
合同数据快到期了,就给管理合同的用户发送系统通知。
怎么结合系统已有的消息功能来实现,求具体思路。
` sendMEG() {
// 设置消息触发条件
let a = 2
let messageBody = []
if (a > 0) {
// 2、发送消息格式 op_office,11
messageBody.push({
title: '合同到期提醒',
target_type: 0,//类型为用户
target_user: 11,//用户ID
creator_id: 1,
content: '有合同快到期了,请及时处理。'
});
}
// 3、发送消息
axios({
url: process.env.VUE_APP_API + MegurlPrefix,
method: 'post',
data: JSON.stringify(messageBody),
headers: {
Authorization: 'JWT ' + util.cookies.get('token'),
"Content-Type": "application/json;charset=UTF-8",
},
}).then(res => {
if (res.data) {
console.log('消息通知:', messageBody);
console.log('系统消息发送成功', res);
} else {
console.error('系统消息发送失败');
}
}).catch(err => {
console.error('系统消息发送失败', err);
});
},
`
以上是实现代码,触发条件是临时的,此代码能新增一条消息记录,但对应的接受消息的用户没有收到消息,
问题已解决:
sendMsg() {
// 设置消息触发条件
let a = 2 //临时条件
if (a > 0) {
// 3、发送消息
axios({
url: process.env.VUE_APP_API + MsgurlPrefix,
method: 'post',
data: {
title: '合同到期提醒001',
target_type: 0, // 消息接受对象为 用户
target_user: [11, 10], // 接受消息的用户ID
creator: 1,
content: '有合同快到期了,请及时处理。'
},
headers: {
Authorization: 'JWT ' + util.cookies.get('token'),
"Content-Type": "application/json;charset=UTF-8",
},
}).then(res => {
console.log('系统消息发送成功', res);
}).catch(err => {
console.error('系统消息发送失败', err);
});
}
},