README.md
im管理系统(fw-hermes)
简介
本系统基于腾讯im及时通讯开发,用于替代push的功能,对客户端发送及时消息,客户端接收到对应消息后用于不同逻辑的处理与展示。
对接文档
1.SDK
<dependency>
<groupId>cn.fw</groupId>
<artifactId>fw-hermes-sdk</artifactId>
<version>1.0.0</version>
</dependency>
2.枚举
3.接口
类:ChatPullApiService
- count 统计聊天次数大于等于所给定次数的聊天记录集合
接口说明:仅发送单向消息不算一次记录 ,一次点对点聊天才成立
入参:
参数名 | 必须 | 类型 | 说明 |
---|---|---|---|
chatCount | 是 | Integer | 聊天次数 |
返回值:
[{"chatCount":20,"fromUserId":1,"fromUserType":0,"toUserId":2,"toUserType":1},{"chatCount":10,"fromUserId":5,"fromUserType":0,"toUserId":7,"toUserType":1}]
- queryChatRecordOfCouple 查询指定时间范围内指定两人聊天次数
接口说明:仅发送单向消息不算一次记录 ,一次点对点聊天才成立
入参:
参数名 | 必须 | 类型 | 说明 |
---|---|---|---|
fromAccount | 是 | String | 消息发送人userId |
fromIsStaff | 是 | Boolean | 消息发送人是否为业务人员 |
toAccount | 是 | String | 消息接收人userId |
toIsStaff | 是 | Boolean | 消息接收人是否为业务人员 |
startTime | 是 | Long | 开始时间 ,单位秒(消息记录默认漫游7天,不能早于当前时间的7天前的日期) |
endTime | 是 | Long | 截止时间 , 单位秒 |
返回值:
Integer 聊天次数
类 : ImAccountApiService
- userRegister 用户注册
入参:
参数名 | 必须 | 类型 | 说明 |
---|---|---|---|
userId | 是 | Long | 用户ID |
userName | 否 | String | 用户名 |
faceUrl | 否 | faceUrl | 面部识别URL |
isStaff | 是 | boolean | 是否为业务人员,true为业务人员,fasle则为客户 |
返回值 :
{"createTime":1614075253000,"identifierCode":"ch22","nickName":"testUser","userId":22}
- getSig 获取签名
入参:
参数名 | 必须 | 类型 | 说明 |
---|---|---|---|
userId | 是 | Long | 用户id |
expire | 否 | Long | 签名过期时间(单位:秒 默认10天)签名未过期不生效(该接口字段未使用) |
isStaff | 是 | boolean | 是否是业务人员(true是业务人员,false则是客户) |
返回值:
{"userId":1189,"identifier":"bh1189","userSig":"eJw1j11vgjAYRv8L12ahfLtkF93SLIi4JQM13jSMtvCqhcoqqIv-fR2R23MunvP8Wtny66lQChgtNHU7Zj1btjUbMb8o6DgthOadwVHg2fbkgPFGg4DRfNcIRfOH*YHKoJTkbzGpspXq19KXHyTHCSHua7u9Nc4RMfAvi3DurzNP49O7GDAQ3AxiqHefiyTc3No43OVYnIJ0v*q7pBLSjlV6llHdZ*21fJnG2IGO9WYSmTzkRmEwlWiQ-J8HyHMcU*g8eFGW7bnRVF8VH*-e-wD4*lB6"}
- getIdentifier 获取IM识别码
入参:
参数名 | 必须 | 类型 | 说明 |
---|---|---|---|
userId | 是 | Long | 用户Id |
isStaff | 是 | boolean | 是否为业务人员(true:业务人员,false :客户) |
返回值:
string 用户识别码
- kick 将用户踢下线
接口说明:默认将用户类型为业务人员的用户踢下线
入参:
参数名 | 必须 | 类型 | 说明 |
---|---|---|---|
userId | 是 | Long | 用户类型为业务人员的用户id |
返回值:
Boolean true:踢下线成功 false:踢下线失败
类: ImSendMsgApiServiceImpl
- sendMsg 弃用发送消息接口方法
接口说明:该接口方法消息接收用户类型默认为业务人员
入参:MsgPara类
构建消息对象方法:
构建自定义消息: getCustomMsg
入参:
参数名 | 必须 | 类型 | 说明 |
---|---|---|---|
desc | 是 | String | 内容(描述信息) |
title | 否 | String | 标题(为空的时候不会在通知栏提示,静默消息) |
ext | 是 | Map<String, Object> ext | 扩展信息 ,业务通知时ext必须要有type字段才能解析 所对应类型为枚举类型 |
lifeTime | 否 | Integer | 离线保留时长(秒) 最长7天,若消息只发在线用户,不想保存离线,则该字段填 0。若不填,则默认保存 7 天 |
userId | 是 | Long | 消息接收人id |
useOffline | 是 | boolean | 是否离线推送 |
构建文本消息:getTextPara
入参:
参数名 | 必须 | 类型 | 说明 |
---|---|---|---|
text | 是 | String | 消息内容 |
lifeTime | 否 | Integer | 离线保留时长(秒) 最长7天 若消息只发在线用户,不想保存离线,则该字段填 0。若不填,则默认保存 7 天 |
userId | 是 | Long | 消息接收人用户id |
构建离线消息:getOfflineTxetPara
构建表情消息:getFaceMsg(消息接收端暂不支持解析)
构建位置消息:getLocationMsg(消息接收端暂不支持解析)
返回值:
Integer 是否发送成功 1:发送成功 0:发送失败
-
asynSendMsg 发送异步消息
接口说明:调用该方法发送消息并不会立即将该消息发送,而是生成唯一消息识别码并返回,然后将消息放 入redis有序队列 定时调度任务拉取 消息进行发送并将发送结果和消息唯一ID发送到MQ
入参:类:MsgParamCondition
构建方法入参参数和接口方法sendMsg除以下提到的以外都一致
区别:
MsgParamCondition:
新增字段:isStaff
参数名 | 必须 | 类型 | 说明 |
---|---|---|---|
isStaff | 是 | Boolean | 消息接收人是否为业务人员;true:业务人员;false:客户 |
构建自定义消息: getCustomMsg
参数名 | 必须 | 类型 | 说明 |
---|---|---|---|
ext | 是 | Map<String, Object> ext | 扩展信息 ,业务通知时ext必须要有type字段才能解析 所对应类型为字符串 |
返回值:
String 消息唯一识别码和MQ返回的唯一消息识别码一致
- synSendMsg 发送同步消息
接口说明:调用该方法发送消息会立即发送该消息并返回发送结果
入参: 入参参数和asynSendMsg 接口方法一致
返回值:
Boolean true:发送成功 false 发送失败
4.MQ
/**
* 消息唯一ID
*/
private String messageId;
/**
* 消息最终状态 true:发送成功
* false:发送失败
*/
private Boolean status;
topic: send_asyn_msg
调用发送异步消息接口方法会将最终发送结果发送给MQ
EX:
{"messageId":"c1feab8485f64bdcabce2cc774a2bd84","status":true}