Websocket业务对接
项目对接完Websocket后,实现业务对接,通过后台业务对接,推送相对应的业务消息给客户端,客户端处理对应业务的消息
系统通告业务对接示例
系统通告管理中,管理员可发两种类型的消息,全体用户和指定用户发送
发送的消息是一个json串
(1)调用WebSocket 服务
@Resource
private WebSocket webSocket;
(2)方法中调用
cmd为业务类型,例如topic表示系统消息,user表示用户消息,可以自定义cmd类型,客户端根据返回的cmd类型处理不同的业务响应
全体发送
//创建业务消息信息
JSONObject obj = new JSONObject();
obj.put("cmd", "topic");//业务类型
obj.put("msgId", sysAnnouncement.getId());//消息id
obj.put("msgTxt", sysAnnouncement.getTitile());//消息内容
//全体发送
webSocket.sendAllMessage(obj.toJSONString());
单个用户发送
//创建业务消息信息
JSONObject obj = new JSONObject();
obj.put("cmd", "user");//业务类型
obj.put("msgId", sysAnnouncement.getId());//消息id
obj.put("msgTxt", sysAnnouncement.getTitile());//消息内容
//单个用户发送 (userId为用户id)
webSocket.sendOneMessage(userId, obj.toJSONString());
多个用户发送
//创建业务消息信息
JSONObject obj = new JSONObject();
obj.put("cmd", "user");//业务类型
obj.put("msgId", sysAnnouncement.getId());//消息id
obj.put("msgTxt", sysAnnouncement.getTitile());//消息内容
//多个用户发送 (userIds为多个用户id,逗号‘,’分隔)
webSocket.sendMoreMessage(userIds, obj.toJSONString());
(3)vue 客户端根据返回的cmd类型处理不同的业务响应
websocketonmessage: function (e) {
console.log("-----接收消息-------",e.data);
var data = eval("(" + e.data + ")"); //解析json对象
if(data.cmd == "topic"){
//TODO 系统通知
}else if(data.cmd == "user"){
//TODO 用户消息
}
},
当前内容版权归 Jeecg-Boot 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 Jeecg-Boot .