返回介绍

269.Websocket业务对接

发布于 2020-09-14 22:20:43 字数 3998 浏览 1040 评论 0 收藏 0

项目对接完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 用户消息

        }

},

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文