消息获取
代码方式
消息获取需要使用MQ mq = new MQ(用户id, 用户认证token);进行处理,设定消息发布者id及token,调用mq. getMsg方法,该方法返回值为Msg实体类。
返回值说明:
1)若用户未生产者(utype=1),getMsg将返回null,并控制台提示:生产者不能获取消息,用户id=**;
2)若消息获取成功,将返回消息体。
内存存储运行逻辑:
1)获取redis服务器中key名为msgid的数据信息(最新消息id),未查询到值默认msgid=1;反之将最新消息id累加1,作为下一条消息的id使用;
2)将最新的消息id(累加1后)作为value值,以key名为msgid进行存储redis中;
3)消息信息序列化后存储redis,key名为msg_ msgid(msgid为该消息的id数值,例:msg_19);
4)查询所有订阅该主题的用户,并将消息id追加到订阅此主题的所有用户队列并存储,每个用户维护一个队列,用queue_uid存储,格式:queue_1:消息id,消息id;
5)存储用户消息队列前判断用户订阅类型(sbscrbtp),当定于类型为push时,根据用户所填路由自动进行消息推送。
持久化(MySQL)存储运行逻辑:
1)将消息数据存储至消息表(bq_msg);
2)根据主题id查询用户订阅表(bq_user_subscrptid),获取所有订阅该主题的用户id集合;
3)消用户订阅类型为push时,根据用户所填路由自动进行消息推送;
4)获取该用户消息队列(bq_msg_user);
5)若未查询到用户消息,创建数据,存储该用户及消息id;若查询到该用户消息,消息队列最后追加最新消息id。
接口方式
调用低代码平台接口:api/MqController/getMsg。
| 传参 | |
| actype | 10(接口调用固定参数) |
| uid | 用户id |
| token | 认证token |
| 接口地址 | |
| api/MqController/getMsg | |
| 返回参数 | |
| code | Code码(100:成功;101:失败) |
| msg | 消息 |
| id | 消息id |
| creattime | 创建时间 |
| 数据格式 | |
|
{ "code": 100, "msg": "消息测试", "id": 237, "creattime": "2025-03-06T16:30:48" } |
|
本文档来自—microbee-http 丨 软件开发框架平台
扫一扫