Only the Chinese version of this page is provided currently. The English version will be provided soon.

Chat 与 Push 混用说明

Last updated: 2026-10-21 20:33:00
本文说明即时通信 Chat 和推送服务 Push 的关系。读完后能判断要不要开通 Push,以及 SDKAppID 和密钥怎么配。

按目标选择服务

先确定要完成的事,再开通对应服务。三种需求可以组合,例如同时做聊天消息通知和运营推送。
方式
您想要完成的事
需要开通的服务
推送目标
1
只在 App 内收发聊天消息,不需要系统通知栏提醒
消息服务 Chat
无
2
不集成 IM 聊天,仅推送运营消息
推送服务 Push
设备 RegistrationID
3
聊天消息需要在系统通知栏提醒,包括 App 退到后台或进程退出后
在同一个 Chat SDKAppID 上开通推送服务 Push
IM UserID
说明:
消息服务 Chat 不自带离线推送,App 进程退出后仍要收到聊天消息通知,必须开通 Push 并接入 TIMPush。
IM 消息的离线推送依赖 Push 套餐能力,请以 计费说明 为准。
消息在线和离线分别走哪条通道,详细参见 收不到在线、离线推送排查流程。

接入步骤说明

方式 1:只接入消息服务 Chat

1. 接入 IM SDK。
2. 完成 IM 登录后收发 Chat 消息。消息走 IM 长连接,不需要配置厂商通道。

方式 2:只接入推送服务 Push

1. 接入 TIMPush。
2. 配置 APNs、Android 厂商或 HarmonyOS 通道。
3. 用户同意隐私政策后调用 registerPush,appKey 传 Push 客户端密钥(Push Key)。
4. registerPush 成功后,调用 getRegistrationID 获取设备 RegistrationID。
5. 在腾讯云 Push 控制台或调用服务端 API 按 RegistrationID 推送运营消息。

方式 3:同时接入 Chat 和 Push

1. 接入 IM SDK 和 TIMPush,注意要在同一个 Chat SDKAppID 上开通推送服务 Push。
2. 配置 APNs、Android 厂商或 HarmonyOS 通道。
3. 按是否需要在用户登录前推送,选择注册顺序:
注册顺序
调用方式
可用推送目标
适用场景
先登录 IM 再注册 Push
IM login 成功后调用 registerPush(appKey = null/nil)
登录后:IM userID
注册后:IM userID / registrationID,此时 registrationID = IM userID
只需在用户登录后推送聊天消息或运营消息
先注册 Push 再登录 IM
用户同意隐私政策后调 registerPush(appKey = Push Key),再调用 IM login
登录前:RegistrationID
登录后:RegistrationID / IM UserID
用户未登录时也要收到运营推送
4. 发送 IM 消息时,推送目标为接收方 IM UserID。自定义消息必须在 OfflinePushInfo 中设置 desc,否则不展示离线通知。
注意:
同时接入 Chat 和 Push 时,必须使用同一个 SDKAppID,但两个服务的密钥不同,详细参见 即时通信 Chat 和推送服务 Push 的 SDKAppID 和密钥有什么区别?。其中,Chat 密钥用于生成 IM 登录所需的 UserSig,不能作为 registerPush 的 appKey。registerPush 中的 Push Key 不为空时,设置为腾讯云控制台 > 即时通信 IM > 推送服务 Push > 概览中的客户端密钥。
用户退出 IM 登录后,UserID 和 RegistrationID 的推送关系都会失效,需要重新完成注册。
禁止:
如果您的业务仅需要在用户登录后推送聊天消息,请不要在登录前调用 registerPush。否则 IM SDK 会注册 Push 类型账号,并产生对应的 Push DAU。Push DAU 超出套餐额度后,会产生额外费用。