消息获取

代码方式

消息获取需要使用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 丨 软件开发框架平台