概述
活动消息服务
消息服务器,目前只用于观看直播时使用,用于接收观看直播时的一些消息处理
private class MessageEventCallback implements MessageServer.Callback {
@Override
public void onEvent(MessageServer.MsgInfo messageInfo) {
switch (messageInfo.event) {
case MessageServer.EVENT_PPT_CHANGED://PPT翻页消息
documentView.showDoc(messageInfo.pptUrl);
break;
case MessageServer.EVENT_DISABLE_CHAT://禁言
break;
case MessageServer.EVENT_KICKOUT://踢出
break;
case MessageServer.EVENT_OVER://直播结束
break;
case MessageServer.EVENT_PERMIT_CHAT://解除禁言
break;
case MessageServer.EVENT_START_LOTTERY://抽奖开始
break;
case MessageServer.EVENT_END_LOTTERY://抽奖结束
break;
case MessageServer.EVENT_NOTICE: //公告消息
break;
case MessageServer.EVENT_SIGNIN: //签到消息
break;
case MessageServer.EVENT_QUESTION: // 问答开关
break;
case MessageServer.EVENT_DIFINITION_CHANGED// PC端切换分辨率
break;
case MessageServer.EVENT_SURVEY:// 问卷消息
break;
/** 白板的操作*/
case MessageServer.EVENT_SHOWBOARD:// 白板消息 1 开始白板 0关闭白板
break;
case MessageServer.EVENT_INITBOARD:// 初始化消息
break;
case MessageServer.EVENT_PAINTBOARD: // 绘制白板
break;
case MessageServer.EVENT_DELETEBOARD: // 删除白板内容
break;
case MessageServer.EVENT_CLEARBOARD:// 清空白板操作
break;
/** 文档的操作*/
case MessageServer.EVENT_PAINTDOC:// 文档绘制
break;
case MessageServer.EVENT_DELETEDOC: // 删除绘制
break;
case MessageServer.EVENT_CLEARDOC://清楚绘制
break;
}
}
@Override
public void onConnectFailed() {
//连接失败
}
@Override
public void onMsgServerClosed() {
//消息关闭
}
}
//连接消息服务器
getWatchLive().connectMsgServer ();
关闭消息服务器:
getWatchLive().disconnectMsgServer ();
1、活动结束消息
event = “MessageServer.EVENT_OVER” 当主播关闭直播的时候触发此消息
2、抽奖消息
观看直播时播主可以发起抽奖,而在移动端观看时可以接受抽奖消息,目前默认游客和参会用户都可以抽奖,而且只能被中奖一次
开始抽奖消息体 event = “MessageServer. EVENT_START_LOTTERY”
字段 | 描述 |
---|---|
Num | 可以中奖的数量 |
type | 消息类型键 |
结束抽奖消息体msgInfo.event = “MessageServer. EVENT_END_LOTTERY”
字段 | 描述 |
---|---|
type | 可以中奖的数量 |
Msginfo.Lists | 返回中奖的数组 |
IsLottery | 是否中奖 |
id | 当前中奖人的参会ID |
LotteryID | 抽奖ID |
Msginfo.Lists 结构体
字段 | 描述 |
---|---|
nickname | 中奖昵称 |
user_id | 用户ID |
third_user_id | 登陆用户名 |
当用户中奖后,需要提交信息,访问SDK中的submitLotteryInfo() , 所需参数如下
字段 | 描述 |
---|---|
id | 当前中奖人的参会ID |
LotteryID | 抽奖ID |
name | 中奖人姓名 |
phone | 中奖人电话 |
VhallSDK.getInstance().submitLotteryInfo(joid_id, lottery_id, nickname, phone,
new VhallSDK.RequestCallback() {
@Override
public void success() {
}
@Override
public void failed(int errorCode, String reason) {
}
});
字段 | 描述 |
---|---|
10030 | 身份验证失败 |
10409 | 参会ID不能为空 |
10410 | 抽奖ID不能为空 |
10411 | 用户名称不能为空 |
10412 | 用户手机不能为空 |
3、公告消息
当PC段发送一段公共消息,消息服务器会接受到这句公共消息,用户自定义显示消息样式 event = “MessageServer.EVENT_NOTICE”
字段 | 描述 |
---|---|
content | 公告内容 |
publish_release_time | 公告发布时间 |
4、签到消息
event = “MessageServer.EVENT_SIGNIN” 当主播正在直播,可以发布签到,观看用户必须登陆才可以签到,签到后web端会进行展示 字段 描述
字段 | 描述 |
---|---|
webinar_id | 活动ID |
sign_id | 签到ID |
user_id | 用户ID |
sign_show_time | 签到初始时间 |
5、问卷消息
event = “MessageServer. EVENT_SURVEY” 当主播正在直播,可以发送问卷,消息服务器会接收到survey_id ,需要使用这个survey_id 获取问卷信息
VhallSDK.getInstance().getSurveyInfo(surveyid, new SurveyDataSource.SurveyInfoCallback() {
@Override
public void onSuccess(Survey survey) {
watchView.showSurvey(survey); //UI层显示
}
@Override
public void onError(int errorCode, String errorMsg) {
chatView.showToast(errorMsg);
}
});
6、白板消息
event = “MessageServer.EVENT_SHOWBOARD” // 开启或者关闭白板 event = “MessageServer.EVENT_INITBOARD” // 初始化白板 event = “MessageServer.EVENT_PAINTBOARD” // 绘制白板 event = “MessageServer.EVENT_DELETEBOARD // 删除白板内容 event = “MessageServer.EVENT_CLEARBOARD” // 清空白板
1配置白板XML (在需要显示的界面中加入, 具体详见文档)
<com.vhall.business.widget.WhiteBoardView
android:id="@+id/board"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
2获取到白板的2获取到白板的实例调用setStep方法 , 将消息服务器获取的信息传递进方法里就可以了
public void paintBoard(MessageServer.MsgInfo msgInfo) {
board.setStep(msgInfo);
}
public void paintBoard(String key, List<MessageServer.MsgInfo> msgInfos) {
board.setSteps(key, msgInfos);
}
7、PPT消息
msgInfo.event = “MessageServer.EVENT_CHANGEDOC” // 切换文档页面 msgInfo.event = “MessageServer.EVENT_PAINTDOC” // 绘制文档信息 msgInfo.event = “MessageServer.EVENT_DELETEDOC” // 删除绘制信息 msgInfo.event = “MessageServer.EVENT_CLEARDOC” // 清空绘制信息
1 配置文档XML (在需要显示的界面中加入, 具体详见文档)
<com.vhall.business.widget.PPTView
android:id="@+id/iv_doc"
android:layout_width="match_parent"
android:layout_height="match_parent" />
2 获取到文档的实例调用setStep方法 , 将消息服务器获取的信息传递进方法里就可以了
@Override
public void paintPPT(MessageServer.MsgInfo msgInfo) {
doc.setStep(msgInfo);
}
@Override
public void paintPPT(String key, List<MessageServer.MsgInfo> msgInfos) {
doc.setSteps(key, msgInfos);
}