fix im server shared database config
This commit is contained in:
@@ -1,6 +1,31 @@
|
||||
# IM 极光推送前后端对接文档
|
||||
|
||||
更新时间:2026-09-04
|
||||
更新时间:2026-09-IM API → PUT https://api.118im.com/v1/im/devices/2386C7EB-FC30-4849-9FC8-7F2B50229F02/push-token [req=ab961f26-e3a9-4f5f-b0f6-2813b8af3597]
|
||||
请求体 {
|
||||
"sdk_version": "6.2.0",
|
||||
"push_env": "test",
|
||||
"app_version": "1.0",
|
||||
"token": "1517bfd3f69c6928135",
|
||||
"platform": "ios",
|
||||
"notification_permission": "granted",
|
||||
"provider": "jpush"
|
||||
}
|
||||
IM API ← 成功 PUT https://api.118im.com/v1/im/devices/2386C7EB-FC30-4849-9FC8-7F2B50229F02/push-token [req=ab961f26-e3a9-4f5f-b0f6-2813b8af3597, status=200]
|
||||
响应体 {
|
||||
"code": 0,
|
||||
"data": {
|
||||
"app_version": "1.0",
|
||||
"device_id": "2386C7EB-FC30-4849-9FC8-7F2B50229F02",
|
||||
"notification_permission": "granted",
|
||||
"platform": "ios",
|
||||
"provider": "jpush",
|
||||
"push_env": "test",
|
||||
"sdk_version": "6.2.0",
|
||||
"updated_at": "2026-09-14T09:49:19.139Z"
|
||||
},
|
||||
"request_id": "ab961f26-e3a9-4f5f-b0f6-2813b8af3597",
|
||||
"server_time": "2026-09-14T09:49:19.167Z"
|
||||
}04
|
||||
|
||||
## 1. 对接边界
|
||||
|
||||
@@ -24,7 +49,11 @@
|
||||
- iOS:配置 APNs 证书或 Token Authentication,申请通知权限。
|
||||
- HarmonyOS:按鸿蒙 SDK 文档初始化并配置通知分类。
|
||||
|
||||
客户端启动后取得 `registration_id`,登录 IM 后把 alias 绑定为当前 `user_id` 的极光安全别名。同一用户多设备允许绑定同一个 alias。
|
||||
客户端启动后取得 `registration_id`,登录 IM 后调用 IM 后端设备接口上报 Push Token。当前测试环境服务端配置 `jpush_use_alias=0`,使用 `registration_id` 投递,不依赖 alias。
|
||||
|
||||
`device_id` 必须稳定,同一台设备不要每次启动变化。切换账号、切换租户、清登录态后必须重新上报 Push Token;客户端本地的上报去重缓存必须按 `tenant_code + user_id + device_id + registration_id` 隔离,避免设备继续绑定在旧账号上。
|
||||
|
||||
如果后续切回 alias 模式,客户端再把 alias 绑定为当前 `user_id` 的极光安全别名。同一用户多设备允许绑定同一个 alias。
|
||||
|
||||
极光 alias 不支持中横线 `-` 和下划线 `_`,而 IM `user_id` 可能包含这两个字符。客户端和后端统一使用以下映射:
|
||||
|
||||
@@ -124,12 +153,14 @@ IM Server 从后台配置读取 `im_jpush` 分组:
|
||||
"jpush_apns_production": "false",
|
||||
"jpush_default_ttl_seconds": "86400",
|
||||
"jpush_call_ttl_seconds": "60",
|
||||
"jpush_use_alias": "true",
|
||||
"jpush_use_alias": "false",
|
||||
"jpush_test_model": "false",
|
||||
"jpush_classification": "1"
|
||||
}
|
||||
```
|
||||
|
||||
测试环境当前使用 `registration_id` 模式,`jpush_use_alias=false`。服务端从 `im_device_push_tokens` 按目标用户查询 `provider=jpush` 的 token,并调用极光 `audience.registration_id`。如改为 alias 模式,需要客户端 SDK alias 绑定回调成功,并保持 alias 映射规则一致。
|
||||
|
||||
### 3.2 设备记录
|
||||
|
||||
设备表建议至少支持:
|
||||
@@ -185,22 +216,11 @@ Content-Type: application/json
|
||||
|
||||
```json
|
||||
{
|
||||
"platform": "all",
|
||||
"platform": "ios",
|
||||
"audience": {
|
||||
"alias": ["usr_target"]
|
||||
"registration_id": ["registration_id_from_jpush"]
|
||||
},
|
||||
"notification": {
|
||||
"alert": "你收到一条新消息",
|
||||
"android": {
|
||||
"title": "MeetingIM",
|
||||
"alert": "你收到一条新消息",
|
||||
"extras": {
|
||||
"type": "im_message",
|
||||
"tenant_code": "default",
|
||||
"topic": "p2p...",
|
||||
"seq": "128"
|
||||
}
|
||||
},
|
||||
"ios": {
|
||||
"alert": {
|
||||
"title": "MeetingIM",
|
||||
@@ -228,25 +248,11 @@ Content-Type: application/json
|
||||
|
||||
```json
|
||||
{
|
||||
"platform": "all",
|
||||
"platform": "ios",
|
||||
"audience": {
|
||||
"alias": ["usr_callee"]
|
||||
"registration_id": ["registration_id_from_jpush"]
|
||||
},
|
||||
"notification": {
|
||||
"alert": "收到一通视频通话",
|
||||
"android": {
|
||||
"title": "视频通话",
|
||||
"alert": "张三邀请你视频通话",
|
||||
"extras": {
|
||||
"type": "call_invite",
|
||||
"tenant_code": "default",
|
||||
"topic": "p2p...",
|
||||
"seq": "30",
|
||||
"call_id": "call_01K...",
|
||||
"call_type": "video",
|
||||
"caller_id": "usr_caller"
|
||||
}
|
||||
},
|
||||
"ios": {
|
||||
"alert": {
|
||||
"title": "视频通话",
|
||||
@@ -314,8 +320,8 @@ Content-Type: application/json
|
||||
| 步骤 | 操作 | 验证 |
|
||||
| --- | --- | --- |
|
||||
| 1 | 客户端初始化 JPush SDK | 能拿到 `registration_id`。 |
|
||||
| 2 | 登录 IM 并绑定 alias=`user_id.replace("-", ".").replace("_", "|")` | 极光控制台能查到别名或设备。 |
|
||||
| 3 | 调用设备上报接口 | 服务端设备记录 provider=`jpush`。 |
|
||||
| 2 | 登录 IM 后上报 `registration_id` | `im_device_push_tokens` 中 `device_id/token/user_id` 与当前登录用户一致。 |
|
||||
| 3 | 调用设备上报接口 | 服务端设备记录 provider=`jpush`,并更新到当前登录用户。 |
|
||||
| 4 | 目标用户退出或断网 | IM 判断为离线或不可 WS 投递。 |
|
||||
| 5 | 发送 P2P 消息 | 离线用户收到 Push。 |
|
||||
| 6 | 点击 Push | App 打开对应会话并补齐 `seq`。 |
|
||||
@@ -323,3 +329,4 @@ Content-Type: application/json
|
||||
| 8 | 通话取消后点击旧 Push | 客户端查询后显示已取消或未接,不进入通话中。 |
|
||||
| 9 | 关闭会话免打扰 | 普通消息不发 Push,@提醒按策略执行。 |
|
||||
| 10 | 极光返回无效 token | 后端禁用设备 token,重新上报后恢复。 |
|
||||
| 11 | iOS APNs 环境 | 测试环境 `apns_production=false` 且客户端为开发 APNs;生产包需同步切换为 true。 |
|
||||
|
||||
Reference in New Issue
Block a user