Java / Spring Boot 服务端示例
提供纯后端 Spring Boot 示例代码、配置和 HTTP 请求序列,无网页或前端依赖。演示业务后端如何接入 IM,而客户端聊天可联合现有 H5 Demo 验证。
构建与启动
需要完整 JDK17+、Maven3.9+。在 sdk/server/java 执行 mvn clean package,配置 IM_BASE_URL、IM_ORG_NAME、IM_APP_NAME、IM_CLIENT_ID、IM_CLIENT_SECRET 和至少16位的 IM_DEMO_ACCESS_TOKEN。
java -jar demo/target/im-java-demo-1.0.0-alpha.jar
curl -fsS http://127.0.0.1:18930/demo/api/status \
-H "X-Demo-Token: $IM_DEMO_ACCESS_TOKEN"默认仅监听回环地址,IM_JAVA_DEMO_PORT 可改端口;根路径返回404。凭据保留在后端,示例访问口令只用于本地联调。正式业务应接入自己的身份认证与授权,不能开放任意用户票据签发或应用级管理操作。
示例结构与流程
| 示例 | 用途 |
|---|---|
| AccountController | 创建/查询/修改/删除账号,为业务用户签发登录票据 |
| MessageController | 发送业务通知、查询管理历史、撤回消息 |
| GroupController | 业务建群、修改群、添加成员和解散 |
| ServiceExamples / OperationsController | 联系关系、推送、在线状态、审核/通话/频道列表、聊天室公告、Java 文件传输 |
| CallbackReceiver | 原始字节验签、异步事件、同步业务允许/拒绝 |
| ApiErrors / DemoSecurity | 错误码映射和示例接口访问保护 |
先创建两个测试用户,签发票据并由客户端兑换真实会话,再发送单聊/群消息、查询历史和撤回。重复用户名、非法参数、不存在接收方可触发真实失败;相同 client_msg_id 验证消息幂等。
完整请求序列见仓库 sdk/server/java/demo/requests.http。文件上传/下载提供 Java 业务组件调用示例,不提供读取任意本机文件的 HTTP 接口。更多操作直接调用 DRClient 的13个服务,不复制177个管理路由。
回调
在租户控制台新增可达的 /im/callback 地址,设置 IM_CALLBACK_ENDPOINT_ID/IM_CALLBACK_SECRET,启动后完成地址验证。GET /demo/api/callbacks 可用示例口令查询最近100条内存事件。正式业务应改为幂等持久化,多实例实现共享 CallbackStore。
同步 message.before_send 示例拒绝包含 [禁止发送] 的正文,需要另行配置对应同步回调才会影响真实发送。自动测试区分真实异步事件与合成签名请求。容器环境使用 IM 可达的宿主地址,生产网络限制不由示例绕过。
测试与报告
在仓库根目录运行 make sdk-server-java-test 完成单元与177项接口契约测试。已有 sdk/conformance/harness 开发服务时,运行 python3 Agent测试/JavaSDK与SpringBoot/run.py,构建最新 Jar 并验证真实业务接入、失败路径及回调,结束清理自己创建的资源和进程。
无浏览器或截图要求;测试报告由结构化结果及 JUnit XML 自动生成,路径为 Agent测试/JavaSDK与SpringBoot/测试报告.md。逐接口契约通过不代表177个接口均完成真实业务验收,真实范围、失败证据与未覆盖内容均以报告为准。
