DH3G游戏资讯网

使用环信 MQTT 打造一款程序员 debug 必备神器(附源码)

发表于:2024-04-29 作者:创始人
编辑最后更新 2024年04月29日,基于 MQTT 订阅 / 发布模型,可以快速实现一对多在线推送功能,并且推送内容可根据自己业务自定义。本次项目"每日 Bug 看板"选择实现任务看板中的消息推送,推送内容包括:任务创建、任务认领、任务

基于 MQTT 订阅 / 发布模型,可以快速实现一对多在线推送功能,并且推送内容可根据自己业务自定义。本次项目"每日 Bug 看板"选择实现任务看板中的消息推送,推送内容包括:任务创建、任务认领、任务释放、任务完成等消息,从而快速实现团队云协作。

方案背景

随着数字化服务的发展,应用系统与终端用户之间需要构建稳定消息通道,且消息的灵活性与实效性决定了消息的价值,尤其对于下述场景,皆需要即时下发业务状态变更通知。

→开发测试:

Bug 创建、认领、修复等记录通知

→在线选座:

在线选座、预定、取消等状态变更通知

→会议室预定

会议室预定、释放等状态变更通知

→工单处理

工单录入、认领、处理等流程通知

→个人待办

未完成、进行中、已完成等办理状态通知

综上所述,当接入端在近百万、千万级的情况下,需要选择一种安全,稳定,可靠的在线推送方案。

产品设计

基于 MQTT 订阅 / 发布模型,可以快速实现一对多在线推送功能,并且推送内容可根据自己业务自定义。

本次项目选择实现任务看板中的消息推送,推送内容包括:任务创建、任务认领、任务释放、任务完成等消息,从而快速实现团队云协作。

技术优势

针对一对多在线推送场景,选择 MQTT 订阅 / 发布模型具备以下优势:

高并发,可以允许海量客户端同时在线;

低延时,通过中间件进行分发,减少消息复制成本;

高可用,服务器支持水平扩展,满足性能要求;

易集成,已具备多端开源 SDK,可快速上线;

轻量级,MQTT 客户端 SDK 简洁,连接消耗低(保活心跳报文 2 个字节)

功能介绍

1)创建 Bug

直接在输入框输入 Bug 描述信息

回车即可添加到未解决目录下

创建成功后团队其他用户均可收到创建提醒

同时所有打开 Bug 看板的成员均会自动更新看板

2)认领 / 取消认领 Bug

认领 Bug

查看未解决的 Bugs

选择要认领的 Bug,点击认领

认领后可以看到该 Bug 上显示自己用户名

团队其他用户均可收到认领提醒(该项不需要可以关闭)

取消认领 bug

查看未解决的 Bugs

选择要取消认领的 Bug,点击自己用户名标签

取消认领后即可释放该 Bug,用户名标签自动改回认领

团队其他用户均可收到释放提醒

同时所有打开 Bug 看板的成员均会自动更新看板

解决 Bug

查看未解决的 Bugs

选择自己已解决的 Bug

点击前面的方框,将其状态改为已解决

该 Bug 将从未解决列表转移到已解决列表

团队其他用户均可收到解决提醒(该项不需要可以关闭)

同时所有打开 Bug 看板的成员均会自动更新看板

Bug 复测不过

对于复测不过的 Bug,需要将其从已解决列表移回未解决列表

在已解决列表选择复测不通过的 Bug

点击前面勾选状态的方框,将其状态改为未解决

团队其他用户均可收到提醒

同时所有打开 Bug 看板的成员均会自动更新看板

删除 Bug

对于录入错误或复测通过的 Bug,可执行删除操作

选择要删除的 Bug

点击最后的删除框,将其从列表删除

团队其他用户均可收到删除提醒

同时所有打开 Bug 看板的成员均会自动更新看板

异常提示

认领他人 Bug

已被认领的 Bug 不允许认领

提示"已被 xxx 认领…",须释放后才能认领

该操作仅本人提示,不会推送给认领人

解决未认领 Bug

未认领的 Bug 不允许改为已完成

提示"请先认领…",认领后才可解决

该操作仅本人提示,不会推送给他人

技术实现

本次 MQTT 服务器选择环信 MQTT 消息云,服务器除了消息路由外,还支持消息存储、在线状态查询、客户端消息轨迹查询等功能。

除此以外,还提供了长期免费版,节省了自己搭建服务器的时间(目前市面上没有免费的 MQTT 服务器,薅羊毛,不薅白不薅~)

在环信注册成功后,即可登录环信 MQTT 消息云控制台,【创建应用】并开通 MQTT 服务,获取图中关键信息。

示例说明

连接环信 MQTT 服务并发送消息

MQTT 服务订阅

MMQTT 服务取消订阅

发送消息

部署说明

修改配置

登录环信 MQTT 消息云控制台,获取上面技术实现图中的关键信息,配置在 index.js 以下参数即可:

服务部署

直接放到 Nginx、Apache、IIS 等 web 容器即可访问,目前已部署在服务器上,可直接打开链接访问。

在线体验地址:任务看板登录入口

代码下载

上文介绍了在线通知的实现和部署,这里附上整个方案的代码供大家学习参考,源码下载

总结

在任务管理这个场景中,会出现创建 Bug、认领 Bug、完成 Bug 等多个状态的频繁变更,所以高效、稳定的通知给所有关注者(订阅者)是关键。

接入基于订阅 / 发布模式的环信 MQTT 消息云,不仅可以支持海量客户端同时在线,还支持消息分发,减少消息复制成本,实时向在线客户端发送消息。另外开发过程中也不需要再关心弱网络环境、断线重连、异常处理、海量并发、系统高可用等复杂的技术问题,极大程度上降低了开发成本,一两天即可搭建一套完整的任务看板功能。

2022-05-06 15:15:11
0