网易云信服务端提供消息抄送功能,支持将您应用的消息和事件等数据,实时同步至您预设的服务器,满足您的应用对于业务数据本地存储的需求。
抄送流程
接收消息抄送的服务器,可以是您的应用服务器,也可以是第三方服务器。本文仅以指定应用服务器接收消息抄送作为示例。消息抄送遵循以下流程:
-
开发者应用客户端通过网易云信服务端收发消息和事件通知等数据。
-
网易云信服务端向开发者服务端发送 HTTP-POST 请求(使用 JSON 格式 的 body 承载数据内容)。
-
请求通过后,开发者服务端解析来自网易云信的 POST 请求获取相应的数据内容。
sequenceDiagram
participant 应用客户端 as 开发者应用客户端
participant 网易云信服务端 as 网易云信服务端
participant 开发者服务端
应用客户端->>网易云信服务端: 1. 收发消息和事件通知
网易云信服务端-->>网易云信服务端: 处理消息数据
网易云信服务端->>开发者服务端: 2. HTTP-POST 请求<br>(JSON 格式 body 承载数据)
开发者服务端-->>开发者服务端: 3. 解析 POST 请求<br>获取数据内容
开发者服务端-->>网易云信服务端: 返回响应
开通服务
您需先前往 网易云信控制台,开通 消息抄送服务,才能使用抄送服务。
实现逻辑
使用消息抄送服务前,建议在您的服务器上实现以下处理逻辑:
处理逻辑 |
说明 |
异步处理 |
- 网易云信设置的抄送超时时间为 5 秒,在此时间内如收到
HTTP 200 或 HTTP 500 响应则视为抄送成功。 - 对于耗时操作(例如数据库写入),建议 使用异步机制(如消息队列)处理,避免超时。
- 如需高可靠性传输,可联系您的网易云信客户经理开通 高保障抄送 服务,失败时最高重试 1000 次。
- 网易云信服务端可缓存最近 30 天内的最高 50 万条消息,服务恢复后可 提交工单 联系网易云信技术支持工程师重新发起抄送。
|
消息去重 |
由于网络波动,同一消息可能被多次发送,请实现 去重机制 避免重复处理。 |
参考实现:
请求格式
在验证数据是否在传输过程中被篡改时,需要计算验证 MD5
值是否被修改,以及计算验证 CheckSum
。MD5 和 CheckSum
计算示例请参考 API 调用方式。
消息抄送请求的 Content-Type
为 application/json
,而非 application/x-www-form-urlencoded
,请 注意区分解析方式。
抄送消息类型
抄送返回的 clientIp
字段表示 IPv4 地址或 IPv6 地址。
IM 登录
eventType |
抄送说明 |
2 |
LOGIN 消息,即用户登录事件的消息。 |
3 |
LOGOUT 消息,即用户主动登出、被踢出、断网离线、应用被清理后相关事件的消息。 |
42 |
IM 长连接心跳。用于登录抄送会收到的兜底,30 分钟一次。 |
84 |
登录失败。 |
IM 会话消息
eventType |
抄送说明 |
1 |
CONVERSATION 消息,即会话类型的消息(目前包括单聊会话内消息与自定义系统通知,群聊会话内消息与自定义系统通知,以及网易云信内置系统通知)。 |
IM 会话已读
eventType |
抄送说明 |
85 |
会话(单聊和群聊)已读数据。 |
单聊
eventType |
抄送说明 |
7 |
单聊消息撤回。 |
30 |
单聊(点对点)消息已读回执。 |
89 |
单聊消息更新。 |
群组
eventType |
抄送说明 |
8 |
高级群聊消息撤回。 |
25 |
超大群聊消息撤回。 |
90 |
高级群聊消息更新。 |
91 |
超大群聊消息更新。 |
92 |
群组(包括高级群和超大群)创建。 |
AI 数字人
eventType |
抄送说明 |
87 |
数字人会话消息。 |
聊天室
eventType |
抄送说明 |
4 |
CHATROOM 消息,即聊天室中聊天的消息。 |
9 |
CHATROOM_INOUT 信息,即汇报创建者或管理员进出聊天室事件消息,及全员进出聊天室事件消息。 |
14 |
CHATROOM_QUEUE_OPERATE 信息,即汇报聊天室队列操作的事件消息。 |
圈组
eventType |
抄送说明 |
47 |
圈组登录登出抄送 |
48 |
圈组消息抄送 |
49 |
圈组自定义系统通知抄送 |
50 |
创建圈组服务器抄送 |
51 |
更新圈组服务器抄送 |
52 |
删除圈组服务器抄送 |
53 |
邀请加入圈组服务器抄送 |
54 |
接受加入圈组服务器邀请抄送 |
55 |
拒绝加入圈组服务器邀请抄送 |
56 |
申请加入圈组服务器抄送 |
57 |
接受加入圈组服务器申请抄送 |
58 |
拒绝加入圈组服务器申请抄送 |
59 |
主动离开圈组服务器抄送 |
60 |
踢除圈组服务器成员抄送 |
61 |
修改圈组服务器中自身信息抄送 |
62 |
修改圈组服务器中他人信息抄送 |
63 |
创建频道抄送 |
64 |
删除频道抄送 |
65 |
修改频道信息抄送 |
66 |
修改频道黑白名单身份组抄送 |
67 |
修改频道黑白名单成员抄送 |
68 |
创建圈组服务器身份组抄送 |
69 |
更新圈组服务器身份组抄送 |
70 |
删除圈组服务器身份组抄送 |
71 |
创建频道身份组抄送 |
72 |
更新频道身份组抄送 |
73 |
删除频道身份组抄送 |
74 |
在频道下为某个人定制权限抄送 |
75 |
删除频道下某人的定制权限抄送 |
76 |
更新频道下某个人的定制权限抄送 |
77 |
拉人进某圈组服务器身份组抄送 |
78 |
踢人出某圈组服务器身份组抄送 |
79 |
批量更新圈组服务器身份组优先级抄送 |
80 |
圈组快捷评论抄送 |
81 |
圈组更新消息抄送 |
82 |
圈组更新自定义系统通知抄送 |
88 |
圈组临时禁言抄送 |
IM 日志
eventType |
抄送说明 |
36 |
SDK 日志上传结果。 |
第三方回调失败
eventType |
抄送说明 |
83 |
第三方回调失败。 |
内容审核
eventType |
抄送说明 |
20 |
异步反垃圾结果信息,仅抄送反垃圾结果为 命中 状态的详细信息。目前支持单聊(点对点)、群聊、聊天室三类语音、视频消息。 |
音视频通话 1.0
eventType |
抄送说明 |
5 |
AUDIO/VEDIO/DataTunnel 消息,即汇报实时音视频通话 1.0 通话时长、白板事件时长的消息。 |
6 |
音视频通话 1.0/白板文件存储信息,即汇报音视频通话 1.0/白板文件的大小、下载地址等消息。 |
13 |
AVROOM_INOUT 信息,即汇报用户进出音视频通话 1.0/白板房间的消息。 |
26 |
音视频通话 1.0 的音视频房间结束的消息。 |
28 |
音视频通话 1.0 的音视频房间开始的消息。 |
音视频通话 2.0
下述类型为音视频通话 2.0 未维护的抄送类型,不推荐新用户使用,音视频通话 2.0 当前抄送类型请参考 房间管理事件抄送。
eventType |
抄送说明 |
21 |
音视频通话 2.0 的 AUDIO/VEDIO 消息,即汇报 G2 实时音视频通话时长。 |
22 |
音视频通话 2.0 的音视频文件存储信息,即汇报 G2 音视频文件的大小、下载地址等消息。 |
23 |
音视频通话 2.0 的用户进出音视频房间的消息。 |
27 |
音视频通话 2.0 的音视频通话房间结束的消息。 |
29 |
音视频通话 2.0 的音视频通话房间开始的消息。 |
互动直播
eventType |
抄送说明 |
35 |
RTMP 推拉流事件。 |
短信
eventType |
抄送说明 |
11 |
SMS_CALLBACK 信息,即汇报短信回执抄送的消息。 |
12 |
SMS_REPLY 信息,即汇报短信上行消息。 |
信令
推送
应用设置
eventType |
抄送说明 |
93 |
应用切换后台。目前支持安卓、鸿蒙、iOS 系统。该抄送需要用户保持登录状态。 |
专线电话
eventType |
抄送说明 |
10 |
ECP_CALLBACK 信息,即汇报专线电话通话结束回调抄送的消息。 |