## 功能测试
![](https://img.kancloud.cn/00/d9/00d956acf9da09ea43e965003ce998ec_1627x870.png)
经过一些功能测试,总结一些功能:
- 随意输入用户名,系统在后台会自动绑定一个用户名——有点类似匿名聊天的功能。
- 可以发送群聊天信息;
- 可以发送私聊信息;
## api接口
### 聊天请求消息结构
~~~
{
"from": "来源ID",
"to": "目标ID",
"cmd":"命令码(11)int类型",
"createTime": "消息创建时间long类型",
"msgType": "消息类型int类型(0:text、1:image、2:voice、3:vedio、4:music、5:news)",
"chatType":"聊天类型int类型(0:未知,1:公聊,2:私聊)",
"groupId":"群组id仅在chatType为(1)时需要,String类型",
"content": "内容",
"extras" : "扩展字段,JSON对象格式如:{'扩展字段名称':'扩展字段value'}"
}
~~~
请求测试:
```
{
"from": "来源ID",
"to": "目标ID",
"createTime": "12345687",
"msgType":"0",
"chatType":"1",
"content": "内容"
}
```
消息返回:
```
2021-09-23 15:32:09,843 INFO o.j.s.p.c.DefaultAsyncChatMessageProcessor\[19\]: 默认交由业务处理聊天记录示例,用户自己继承BaseAsyncChatMessageProcessor即可:{"chatType":1,"content":"内容","createTime":12345687,"from":"来源ID","id":"3fc2ac6f04c74284a61255213862ed43","msgType":0,"to":"18d2ed0426ff4827a12108be913b5ad9"}
```
### 开源版本问题
> 问题解读:开源版本3.0中存在以下问题。
>
![](https://img.kancloud.cn/a3/a2/a3a27da3367d0f3f70a1089abea262e9_1077x549.png)
#### 解决办法
通过反射,设置上下文:
```java
} else if (paramType.isAssignableFrom(ImChannelContext.class)) {
paramValues[i] = request.getImChannelContext();
}
```
- 写在前面
- 如何阅读源码
- 第一部分 开源框架
- Netty
- 启动过程
- SpringSecurityOauth2
- Quartz
- quartz启动原理
- quartz定时调度任务触发流程
- 第二部分 优质中间件源码分析
- Canal
- Canal是如何伪装为mysql的slave的?
- canal源码调试
- Sentinel
- 核心概念梳理
- 滑动窗口实现原理
- jvm-sandbox
- jvm-sandbox-repeater
- Windows环境安装
- 结果比对
- 第三部分 优质行业项目源码分析
- 第一章 分库分表实践
- sharding-jdbc
- 第二章 DDD领域驱动
- 享同科技DDD开源框架
- J-IM
- 功能测试
- 悟空CRM
- 项目搭建
- 默认密码
- dataX-web
- 项目搭建
- 部署报错
- dolphinscheduler
- awescnb
- geek
- chrome插件-funds
- 优质开源项目备忘