JS 聊天SDK使用
注意事项:
- 当与其它SDK同时使用时,必须待其它SDK实例化成功后,再实例化此SDK。
聊天实例
创建实例
let option = {
appId:"xxx", // appId 必须
accountId:"xxx", // 第三方用户ID
channelId:"xxx", // 频道id 必须
token:"xxx", // 必须, token,初始化接口获取
}
let chat = null;
VhallChat.createInstance(option,(event) => {
chat = event.message; // 聊天实例句柄
let disable = event.disable; // 个人是否被禁言,bool值
let disable_all = event.disable_all; // 是否频道被禁言,bool值
},err=>{
console.error(err);
});
销毁实例
chat.destroy();
事件监听
监听聊天消息
chat.onChat((message) => {
console.log(message);
});
// message 格式如下:
message = {
type: VhallChat.TYPE_TEXT, // 聊天消息类型,目前有文本类型、禁言、取消禁言等类型
text_content: "", // 文本消息体(废弃)
data:"", // 文本消息体
user_id:"", // 用户ID
context: { // 自定义消息体
nick_name: "", // 昵称信息
avatar: "", // 头像信息
},
msgId:"", // 消息Id
date_time: "2019-07-25 18:44:06", // 消息发送时间
}
- nick_name与avatar字段在消息API中设置;如在发送消息context中传入该字段,则以传入的为准
监听自定义消息
let callback = function(msg){
console.log(msg);
}
chat.onCustomMsg(callback);
接口调用
发送聊天消息
// 消息体
let body = {
data: "", // 聊天消息,字符串格式。必填
context: {}, // 自定义消息,JSON格式。选填
inspection: true, // 消息审查,默认打开。选填
}
// 发送聊天消息
chat.emitChat(body, () => {
// 成功回调
}, (error) => {
console.log(error); // JSON类型,{ code: 错误码, message: "", data: {} }
});
发送自定义消息
let data = {};
chat.emitCustomMsg(data);
- 自定义消息有频率限制,每个聊天通道最大发送频率为1000条每分钟
开关禁言
let param = {
type:VhallChat.TYPE_DISABLE, // 禁言类型
targetId:"" //被禁言者ID,当type为TYPE_DISABLE和TYPE_PERMIT时此值必填
}
let success = function(){
}
let failure = function(err){
}
chat.setDisable(param , success , failure);
- TYPE_DISABLE 禁言频道内某个用户的聊天(频道内单个用户的禁言)、TYPE_DISABLE_ALL禁言整个频道的聊天(全员禁言)、TYPE_PERMIT取消禁言频道内某个用户的聊天(取消频道内单个用户的禁言)、TYPE_PERMIT_ALL取消禁言整个频道的聊天 (取消全员禁言)
获取历史聊天消息
let param = {
currPage:1, //当前页
pageSize:2,// 每页大小
startTime:"",// 查询开始时间 格式为: 2017/01/01
endTime:"",// 查询结束时间 格式为:2017/01/01
}
let success = function(history){
console.log(history)
}
let failure = function(err){
}
chat.getHistoryList(param , success , failure);
// history 格式如下:
history = {
"list": [{
"type": "text", // 消息类型
"data": "2", // 消息内容
"date_time": "2019-12-02 19:20:05", // 发送时间
"third_party_user_id": "miniProgram_1463", // 发送第三方用户id
"msg_id": "msg_1783ebeaaa339b0fd6d51dccb37cf5e0", // 消息id
"context": { // 用户自定义消息体
"nick_name": "vhall",
"avatar": ""
},
"nick_name": "vhall", // 昵称
"avatar": "" // 头像
},
{
"type": "text",
"data": "\uff1f",
"date_time": "2019-12-02 19:02:31",
"third_party_user_id": "miniProgram_2320",
"msg_id": "msg_9857054a3d8437b97d803647c8875e11",
"context": {
"nick_name": "",
"avatar": ""
},
"nick_name": "",
"avatar": ""
}],
"total": 4, // 消息总数
"page_num": "1", // 当前页数
"page_all": 2 // 总页数
}
全局定义
消息类型
| 可选值 | 事件 | 备注 |
|---|---|---|
| VhallChat.TYPE_TEXT | 文本消息 | |
| VhallChat.TYPE_DISABLE | 禁言某个用户 | |
| VhallChat.TYPE_DISABLE_ALL | 全员禁言 | |
| VhallChat.PERMIT | 取消禁言某个用户 | |
| VhallChat.PERMIT_ALL | 取消全员禁言 |
