概述
当用户在创建发起直播实例或者观看直播实例时的.ChatCallback中传入chatCallback回调,聊天服务器就已经开启了,具体参考快速接入介绍中的发起观看创建实例的描述
private class ChatCallback implements ChatServer.Callback {
@Override
public void onChatServerConnected() {
// 聊天服务器建立
}
@Override
public void onConnectFailed() {
// 聊天服务器连接失败
}
@Override
public void onChatMessageReceived(ChatServer.ChatInfo chatInfo) {//消息接收
switch (chatInfo.event) {
case ChatServer.eventMsgKey: // 聊天消息通知
break;
case ChatServer.eventCustomKey: // 自定义消息通知
break;
case ChatServer.eventOnlineKey: // 上线消息通知
break;
case ChatServer.eventOfflineKey: // 下线消息通知
break;
case ChatServer.eventQuestion: // 问答消息
break;
}
}
@Override
public void onChatServerClosed() {
}
}
//聊天服务器其他方法
//连接聊天服务器:
getBroadcast().connectChatServer ();
//关闭聊天服务器:
getBroadcast().disconnectChatServer ();
字段 |
描述 |
account_id |
用户ID |
user_name |
用户昵称 |
avater |
头像id |
room |
活动id |
event |
消息类型 (用于区分消息用途) |
time |
发送时间 |
上下线消息
消息体event字段说明:chatInfo.event = “online offline”
用户接受消息可以自定义上下线的内容
字段 |
描述 |
event |
online offline |
OnlineData |
描述 |
role |
用户类型 host:主持人 guest:嘉宾 assistant:助手 user:观众 |
concurrent_user |
房间内当前用户数 |
is_gag |
是否被禁言 |
attend_count |
参会人数 |
聊天消息
消息体event字段说明:chatInfo.event = “msg”
目前发起直播和观看直播中可以聊天。发起直播调用getBroadCast().sendChat()方法 。观看直播调用getWatchLive().sendChat()。
字段 |
描述 |
text |
聊天内容 offline |
VhallSDK.RequestCallback |
回调信息 |
发起直播代码展示 && 观看直播代码展示(默认登录):
getBroadcast().sendChat(text, new VhallSDK.RequestCallback() { // 发起直播时聊天
@Override
public void success() {
//发送成功
}
@Override
public void failed(int errorCode, String reason) {
//发送失败
}
});
getWatchLive().sendChat(text, new VhallSDK.RequestCallback() {// 观看直播时聊天
@Override
public void success() {
//发送成功
}
@Override
public void failed(int errorCode, String reason) {
//发送失败
}
});
自定义消息
消息体event字段说明:chatInfo.event = “custom_broadcast”
getBroadcast().sendCustom(text, new VhallSDK.RequestCallback() {//发直播自定义消息
@Override
public void success() {
//发送成功
}
@Override
public void failed(int errorCode, String reason) {
//发送失败
}
});
getWatchLive().sendCustom(text, new VhallSDK.RequestCallback() {//看直播自定义消息
@Override
public void success() {
//发送成功
}
@Override
public void failed(int errorCode, String reason) {
//发送失败
}
});
/**
* 功能演示 模拟点击发送
*/
send_custom.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
JSONObject json = new JSONObject();
try {
json.put("key0", "value");
json.put("key1", "0000");
json.put("key2", "微吼");
} catch (JSONException e) {
e.printStackTrace();
}
mPresenter.sendCustom(json);
}
});
聊天记录
获取SDK聊天记录。聊天记录只在观看直播时候获取,调用acquireChatRecord()
字段 |
描述 |
showAll |
显示当次直播聊天最多为20条,true显示所有聊天最条为20条 |
ChatRecordCallback |
聊天记录回调 |
getWatchLive().acquireChatRecord(false, new ChatServer.ChatRecordCallback() {
@Override
public void onDataLoaded(List<ChatServer.ChatInfo> list) {
//回调获取成功
}
@Override
public void onFailed(int errorcode, String messaage) {
//回调获取失败,查看错误信息
}
});
错误码 |
描述 |
10030 |
身份验证出错 |
10402 |
当前活动ID错误 |
10403 |
活动不属于自己 |
10407 |
查询数据为空 |
10408 |
当前活动非直播状态 |
10409 |
参会信息不存在 |
10410 |
活动开始时间不存在 |
问答消息
消息体event字段说明:chatInfo.event = “question”
发送活动问答
目前只支持观看端发送活动问答。在用户登陆成功的情况下可以发送问答,问答每5分钟发送一次,避免一些用户恶意发送。调用sendQues()方法,发送问答信息。
getWatchLive().sendQuestion (text, new VhallSDK.RequestCallback() {
@Override
public void success() {
// 发送成功
}
@Override
public void failed(int errorCode, String reason) {
// 发送失败
}
});
QuestionData |
描述 |
id |
问题的id |
nick_name |
昵称 |
content |
提问内容 |
join_id |
参会ID |
created_at |
创建时间 |
role_name |
角色 |
is_open |
是否为私密回答 |
QuestionData |
answer 参数和此消息体相同 |
错误码 |
描述 |
10601 |
不是直播 |
10602 |
参会者不存在 |
10603 |
5分钟内不可提问 |
10604 |
活动ID不能为空 |
10605 |
问题不能为空 |
10606 |
用户不能为空 |