消息抄送服务
消息抄送是网易云信提供的消息同步服务,通过这一服务,可以将音视频通话 2.0 业务下的消息或事件等数据,以 HTTP/HTTPS 请求的形式实时同步给您预设的服务器。可以是您的业务服务器,也可以是第三方开发者服务器。您可以通过消息抄送服务实现用户在线状态分析和特殊事件处理等功能。
在音视频通话 2.0 中,消息抄送服务已集成实时音视频、互动直播、云端录制业务下的部分事件,您可以开通消息抄送服务以接收相关通知信息。
音视频通话2.0消息抄送全新改版,支持更多场景的消息抄送。若您仍在使用旧版消息抄送且需要切换新的抄送服务,请参考音视频通话 2.0 消息抄送更新通知 ,联系技术支持人员协助您切换至新的抄送服务。
消息抄送流程
在本地实现消息抄送的相关逻辑。
开通消息抄送服务。
请参考开通消息抄送服务配置接收抄送的服务器地址和需要抄送的消息类型。
当您指定要接收通知的时间发生时,网易云信将以 HTTP/HTTPS POST 请求形式向您的服务器发送消息回调。
您的服务器在收到消息抄送后,需要解析该请求以获取事件内容。
考虑到网络环境的不稳定性,为确保消息抄送都能成功到达您的服务器,每次事件可能会有不止一次消息通知,建议您对接收消息的服务器设置去重机制,支持处理重复消息。
您的服务器向网易云信服务器返回状态码。
- 消息抄送的超时时间是 5 秒,如果在 5 秒内收到开发者服务器返回 HTTP 200 状态码,则认为消息抄送成功,否则认为抄送失败。 如果收到 HTTP 200 和 500 以外的状态码,服务器会按照一定策略重试。
- 如果您在接收到消息之后,需要进行 DB 入库等耗时多的操作,建议将该接口设置为异步机制,例如可以将消息先存到 MQ 中,以免被网易云信判定为超时。
- 如果多次重试后仍抄送失败,网易云信将会丢弃抄送失败的消息。若您有特殊需求不能丢弃消息抄送,请联系技术支持人员开通高保障抄送。开通该服务后,如果抄送失败,网易云信服务器将会尝试重新抄送最多 1000 次。如果开发者接收消息抄送的接口在一段时间内持续无法响应,网易云信服务器支持将最多 50 万条消息缓存下来,待您的服务器消息接收接口恢复后,手动提交任务重新进行抄送。
注意事项
- 抄送的
Content-Type
为application/json
,请注意解析方式。 - 抄送的消息中,部分字段在某些场景下可能是空,请注意各字段的判空处理。
- 若您已经开通了IM 即时通讯消息抄送功能,在接入音视频通话/互动直播 2.0 消息抄送功能时,请注意:
- 网易云信 IM 即时通讯产品和音视频通话 2.0 产品的消息抄送功能相互独立,不同产品中的事件消息抄送的 eventType 可能相同。
- 需要在消息抄送回调的 header 中进行 type 字段的解析,且将 type 字段设为非必传项。若 type=G2,表示该抄送为音视频通话 2.0 相关的消息抄送。若您未对 header 进行正确解析、未通过 type 字段区分 IM 和音视频通话 2.0 的抄送内容,可能会影响您对于消息抄送功能的使用。
- 实时音视频事件中的部分事件抄送涉及计费,如有需要,请联系云信商务经理查看计费策略并协助开通相关抄送。互动直播和云端录制相关事件的消息抄送免费。
消息抄送回调格式
开通消息抄送服务之后,在您指定要接收通知的时间发生时,网易云信将以 HTTP/HTTPS POST 请求形式向您的服务发送消息回调,请求的 body 格式为 JSON。字符编码为 UTF-8。
header 格式
请求 header 涉及字段如下:
字段 | 说明 |
---|---|
AppKey | 抄送事件所属的云信应用 App Key。 |
CurTime | 当前 UTC 时间戳,即 1970 年 1 月 1 日 0 点 0 分 0 秒开始到现在的毫秒数。 |
CheckSum | sha1(AppSecret + MD5 + CurTime) |
MD5 | 根据请求中的 request body 计算出来的 MD5 值。md5(request body)。 |
type | 固定为 G2。表示音视频通话 2.0 相关的消息抄送。 注意:IM 的消息抄送中不包含此字段。如果您同时开通了 IM 消息抄送和音视频通话/互动直播消息抄送,且使用同一个抄送地址,应将处理逻辑中将 type 设为非必传字段。 |
body 格式
请求 body 为 JSON 格式,公共字段如下:
字段 | 说明 |
---|---|
eventType | 消息抄送的事件类型。目前支持以下类别: |
data | 抄送的消息体。 |
消息抄送示例
例如,预设接收消息的第三方服务器地址为 http://yunxinservice.com.cn/receiveMsg.action
,网易云信向您的服务器发送的消息抄送示例如下:
POST /receiveMsg.action HTTP/1.1
Host: yunxinservice.com.cn
Content-Type: application/json
AppKey: aasasasassaassa
CurTime: 1440570500855
MD5: *****************
CheckSum: 001511********************
type: G2
{"eventType": 1,"data": {"channelId": 123,"channelName": "abc","creaetime": 1606974852379,"timestamp": 1606974852479}}


此文档对你是否有帮助

