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 取消全员禁言