配置消息通知
直播服务使用消息通知服务对直播录制状态进行实时通知,如需使用该功能,需要先配置消息通知服务。由于消息通知由消息通知服务(SMN)完成,所以SMN将对发送的消息通知进行单独计费,具体的计费标准请参考SMN价格详情。
背景介绍
- 主题是消息发布或客户端订阅通知的特定事件类型。它作为发送消息和订阅通知的信道,为发布者和订阅者提供一个可以相互交流的通道。在配置直播消息订阅前必须定制主题。
- 消息订阅是客户将订阅者注册到主题的操作,客户可以拥有多个主题,每个主题有多个订阅者。
- 消息订阅暂以项目ID进行区分,即同一个项目ID的域名暂只能使用同一个消息订阅,消息订阅配置对同一个项目ID的所有域名生效。
配置流程
消息订阅的配置流程,如图1所示。
步骤一:创建消息主题
- 登录管理控制台。
- 单击“服务列表 > 消息通知服务”。
- 在左侧导航树中,选择 ,进入主题页面。
- 单击
,设置主题名称等参数。参数配置说明,详见创建主题。图2 创建主题
- 单击“确定”,消息主题创建成功。
步骤二:添加订阅
- 在消息通知服务的左侧导航树中,选择 ,进入主题页面。
- 在已创建的主题行单击“添加订阅”,右侧弹出“添加订阅”页面。 列的
- 配置消息通知的类型和对象。
图3 添加订阅
表1 添加订阅参数说明 参数名
描述
主题名称
待添加订阅的主题名称,不需要修改。
协议
消息通知的方式。在下拉框中选择需要订阅终端支持的协议。
直播服务常用的消息通知方式为“短信”、“邮件”和“HTTP/HTTPS”。
- 短信协议
- 邮件协议
- HTTP/HTTPS协议
订阅终端为公网网址,消息通知服务向HTTP(S)终端发送的通知消息包括HTTP头部信息与HTTP Content部分。Content部分是JSON格式的字符串。具体详情请参见HTTP(S)消息格式。
订阅终端
订阅的终端地址,短信、邮件、HTTP以及HTTPS终端支持批量输入,批量添加时,每个终端地址占一行。最多可输入10个终端。
- 添加订阅后,配置的订阅终端将收到确认订阅消息。若订阅终端为邮件,如图4所示。确认后,设置的订阅终端才能收到该主题发布的消息。
步骤三:设置主题策略
- 在消息通知控制台的左侧导航树中,选择 ,进入主题页面。
- 在创建的主题行单击 列的“更多 > 设置主题策略”,弹出“设置主题策略”页面。
- 配置主题策略的参数
图5 主题策略设置
访问策略分为基本模式和高级模式,其中基本模式只可对用户和服务设置发布消息的操作权限,如表2所示。也可直接参考设置主题策略。
表2 基本模式说明 策略对象
参数名
描述
可发布消息的用户
仅自己(主题创建者)
仅主题创建者有权限向该主题发布消息。
所有人
所有用户均有权限向该主题发布消息。
仅如下用户
设置可向该主题发布消息的用户。
格式为urn:csp:iam::domainId:root
其中,domainId即为用户的账号ID。多个用户时,以英文逗号隔开,可输入的用户数量没有限制,但生成的策略总长度不超过30KB。说明:- 您只需填写用户的“账号ID”,输入完成后,单击“确定”。其余内容由系统自动补全。
- “账号ID”的获取方式:登录消息通知服务控制台,单击右上角用户名下的 ,可查看“账号ID”。
可发布消息的服务
设置项如上图所示。
勾选“LIVE”,表示授权该云服务可对该主题进行操作。
录制通知消息模板
录制通知的消息模板如下所示,消息中各字段说明如表3所示。
Live Record Notify, domain: {domain}, app_name: {app_name}, stream_name: {stream_name}, download_url: {download_url}, filename: {filename},asset_id: {asset_id}, duration: {duration}, event: {event}, timestamp: {timestamp}
字段 |
描述 |
---|---|
domain |
推流域名。 |
app_name |
应用名称,与推流地址中的AppName保持一致。 |
stream_name |
直播流名称。 |
download_url |
录制文件的下载地址,当event的值不为RECORD_NEW_FILE时,该字段为空。 |
filename |
录制文件的名称,当event的值不为RECORD_NEW_FILE时,该字段为空。 |
asset_id |
录制文件的媒资ID,点播服务分配给该录制文件的唯一标识,当event的值不为RECORD_NEW_FILE时,该字段为空。 |
duration |
录制文件的时长,当event的值不为RECORD_NEW_FILE时,该字段为0。 |
event |
录制事件,包括:
|
timestamp |
录制时间戳。 |