更新时间:2020-08-13 15:56
云视频会议的消息可通过HTTP方式推送给客户,以方便客户根据会议的相关状态进行对应的业务处理,当前云视频会议推送的消息分为4类:
云视频会议的消息推送需要使用EventBridge产品,需要客户前往EventBridge产品页面开通,开通后按照以下流程开通和接收推送消息。
注:消息推送功能依赖EventBridge服务,云视频会议会自动创建SLR用于云产品之间服务调用,客户无需手动操作. 如开通消息提示用户没有创建SLR权限,则点击SLR说明完成第一步准备工作,授予用户权限策略即可成功开通。
Rule -规则可以过滤哪些字段?
filterPattern:用户对事件的过滤条件,过滤以下事件字段:
source:事件源(当前为定长为1的数组,指定自己需要过滤的source,source是云服务接入时注册在eventbridge的名字,如acs.oss, acs.aliyuncvc)
type:事件类型(事件的类型,当前要求是字符串数据,如["aliyuncvc:meetingEvent:MeetingStateEvent","aliyuncvc:MeetingEvent:MemberStateEvent"],要求是云服务注册到eventbridge时,填写的事件类型的子集)
subject: 事件的资源描述(事件发生的资源描述,当前可以是字符串数组如["acs:aliyuncvc:cn-hangzhou:1234567:123122/1234567"],也可以是前后缀表达式数据如[{"prefix":"acs:aliyuncvc:cn-hangzhou:1234567:123122/"}])
Targets -目标是什么?
事件过滤成功后需要将事件路由(推送)到下游的target,targets就是对多个下游的描述信息。以http类型的target为例,他记录了目标的回调http地址,回调参数类型,回调失败重试机制等信息。目前暂时只支持http的回调。
登录EventBridge控制台,单击左侧菜单规则—》创建规则。 进入事件规则创建界面:
选default事件总线:阿里云会议事件统一推送到default 默认总线,选择默认事件选项:
填写名称与描述,如下图所示:
选择事件源与事件类型:选择服务提供方为阿里云服务,阿里云服务选择Aliyun Meeting Service,选择需处理的事件类型(事件类型描述见下节);添加目标设置中,可选择消息推送至哪里,目前只支持HTTP POST,设置如下,推送格式选择完整事件,如下图所示:
填写Target 目标信息:可选择消息推送至哪里,目前只支持HTTP POST,设置如下,推送格式选择完整事件,如下图所示:
如下demo是以java springboot为例,接收事件推送的代码。其中rule,target配置信息如下:
rules=[
EventRuleDTO{
eventBusName='default',
ruleARN='acs:eventbridge:cn-hangzhou:XXXXXX:eventbus/default/rule/ruleAliyuncvc',
ruleName='ruleAliyuncvc',
description='null',
status='ENABLE',
filterPattern='{"source":["acs.aliyuncvc"],"type":["aliyuncvc:MeetingEvent:MeetingStateEvent","aliyuncvc:MeetingEvent:MemberStateEvent","aliyuncvc:MeetingEvent:MemberOperate","aliyuncvc:MeetingEvent:MeetingStatistic"]}'
targets=[
TargetEntry{
id='bikiEcs',
type='http',
endpoint='http://api.xtingke.com/eventBridge/revieveMessage',
pushSelector='MATCHED_EVENT',
pushRetryStrategy='BACKOFF_RETRY'
}
],
ctime=1587634012545,
mtime=1587720803167
}
]
PostMapping路径和eventBridge控制台-目标设置-URL对应
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@SpringBootApplication
@Slf4j
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@PostMapping("/eventBridge/revieveMessage")
@ResponseBody
public String revieveMessage(@RequestBody String data) {
log.info("revieveMessage");
log.info(data);
return "recieved";
}
}
{
"data":"{"meetingName":"app_ios_cb0_us1364648695gkof","action":"meeting_end","time":1595334143810,"meetingUUID":"hz-37192739hudhui"}",//事件具体信息在此,详情看下表分解
"id":"45ef4dewdwe1-7c35-447a-bd93-fabd2a2",//id标识
"source":"acs.aliyuncvc",//事件源
"type":"aliyuncvc:MeetingEvent:MeetingStateEvent",//事件类型
"subject":"acs.aliyuncvc:cn-hangzhou:{此阿里云主账户id}:215672",//事件主题
"time":"2020-07-21 20:22:01.961000"//触发时间
}
其中4种事件类型对应的事件信息(data字段)json格式如下:
云视频会议的事件类型与每种事件的数据格式如下表所示:
事件类型 | 事件名称 | 数据格式 | 备注 |
---|---|---|---|
会议开始/结束 | aliyuncvc:MeetingEvent:MeetingStateEvent | {meetingUUID/ meetingName/action/time} | 参数含义:{会议id/会议名称/动作/时间戳} |
成员加入/离开 | aliyuncvc:MeetingEvent:MemberStateEvent | {meetingUUID/meetingName/action/time/groupId/userId/state/startTime/callState} | 只有离会时才有state(passive/active)和startTime,只有PSTN方式入会,才有callState(call_in). 参数含义:{会议id/会议名称/动作/时间戳/企业id/用户id/主动被动离会/入会时间/呼入呼出} |
成员会中操作 | aliyuncvc:MeetingEvent:MemberOperate | {meetingUUID/meetingName/action/time/groupId/userId} | 参数含义:{会议id/会议名称/动作/时间戳/企业id/用户id} |
会议统计数据 | aliyuncvc:MeetingEvent:MeetingStatistic | {time/meetingCount/meetingTime/meetingMember/meetingConcurrency} | 参数含义:{时间戳/会议数量/会议时长/会议人数/会议最高并发量(同时在会议中人数)} |
在文档使用中是否遇到以下问题
更多建议
匿名提交