服务端

消息抄送服务概述

更新时间: 2024/03/25 11:00:40

消息抄送是网易云信提供的消息同步服务,通过这一服务,可以将音视频通话 2.0 业务下的消息或事件等数据,通过发起 HTTP/HTTPS 请求实时同步给您预设的服务器。可以是您的业务服务器,也可以是第三方开发者服务器。您可以通过消息抄送服务实现用户在线状态分析和特殊事件处理等功能。

在音视频通话 2.0 中,消息抄送服务已集成实时音视频、互动直播、云端录制业务下的部分事件,您可以开通消息抄送服务以接收相关通知信息。

消息抄送流程

  1. 在本地实现消息抄送的相关逻辑。

    您可以参考消息抄送流程、注意事项回调格式等内容完成本地配置。

  2. 开通消息抄送服务。

    请参考开通消息抄送服务配置接收抄送的服务器地址和需要抄送的消息类型。

  3. 当您指定要接收通知的事件发生时,网易云信将以 HTTP/HTTPS POST 请求形式向您的服务器发送消息回调。

    在问题故障等其他情况下,消息抄送可能不会及时返回,建议您在本地业务中考虑相关兜底策略。例如事件发生后 10 秒内,若未收到网易云信的消息抄送,可忽略抄送,继续其他业务流程。

  4. 您的服务器在收到消息抄送后,需要解析该请求以获取事件内容。

    考虑到网络环境的不稳定性,为确保消息抄送都能成功到达您的服务器,每次事件可能会有不止一次消息通知,建议您对接收消息的服务器设置去重机制,支持处理重复消息。

  5. 您的服务器向网易云信服务器返回状态码。

    • 消息抄送的超时时间是 5 秒,如果在 5 秒内收到开发者服务器返回 HTTP 200 状态码,则认为消息抄送成功;如果收到 HTTP 200 和 500 以外的状态码,则认为抄送失败。

    即使首次消息抄送成功,若云信服务器在 5 秒内未收到开发者服务器返回的 HTTP 200 状态码,会尝试再次抄送,因此可能会出现重复抄送的情况,建议您根据 channelId 对接收消息抄送的服务器设置去重机制。

    • 如果您在接收到消息之后,需要进行 DB 入库等耗时多的操作,建议将该接口设置为异步机制,例如可以将消息先存到 MQ 中,以免被网易云信判定为超时。
    • 如果抄送失败,网易云信将会丢弃抄送失败的消息。若您有特殊需求不能丢弃消息抄送,请联系技术支持人员开通高保障抄送。开通该服务后,如果抄送失败,网易云信服务器将会尝试重新抄送最多 1000 次。如果开发者接收消息抄送的接口在一段时间内持续无法响应,网易云信服务器支持将最多 50 万条消息缓存下来,待您的服务器消息接收接口恢复后,联系云信技术支持申请重新抄送。

注意事项

  • 抄送的 Content-Typeapplication/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 消息抄送的事件类型。目前支持以下类别:注意:安全通审核事件抄送需要开通音视频通话2.0或点播的安全通服务。
data 抄送的消息体。

消息抄送示例

例如,预设接收消息的第三方服务器地址为 http://yunxinservice.com.cn/receiveMsg.action,网易云信向您的服务器发送的消息抄送示例如下:

httpPOST  /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}}

此文档是否对你有帮助?
有帮助
去反馈
  • 消息抄送流程
  • 注意事项
  • 消息抄送回调格式
  • header 格式
  • body 格式
  • 消息抄送示例