173 lines
5.5 KiB
JavaScript
173 lines
5.5 KiB
JavaScript
|
||
import GoEasy from 'goeasy'
|
||
//IM登录
|
||
export function goEasylogin(goeasy, id, avatar, nickname) {
|
||
console.log("`````````````````goEasylogin`````````````````", id, avatar, nickname);
|
||
goeasy.connect({
|
||
id: id, //im必填,最大长度60字符
|
||
data: { "avatar": avatar, "nickname": nickname }, //必须是一个对象,im必填,最大长度300字符,显示在会话列表中
|
||
onSuccess: function () { //连接成功
|
||
console.log("IM连接成功") //连接成功
|
||
},
|
||
onFailed: function (error) { //连接失败
|
||
console.log("IM连接失败, code:" + error.code + ",error:" + error.content);
|
||
},
|
||
onProgress: function (attempts) { //连接或自动重连中
|
||
console.log("IM连接或自动重连中", attempts);
|
||
}
|
||
});
|
||
}
|
||
|
||
//退出登录
|
||
export function goEasylogout(goeasy) {
|
||
goeasy.disconnect({
|
||
onSuccess: function () {
|
||
console.log("IM断开成功")
|
||
},
|
||
onFailed: function (error) {
|
||
console.log("IM断开失败, code:" + error.code + ",error:" + error.content);
|
||
}
|
||
});
|
||
}
|
||
|
||
//获取会话列表
|
||
export function getConversationList(goeasy) {
|
||
return new Promise((resolve, reject) => {
|
||
var im = goeasy.im;
|
||
im.latestConversations({
|
||
onSuccess: function (result) {
|
||
console.log("获取会话列表成功", result);
|
||
resolve(result.content);
|
||
},
|
||
onFailed: function (error) { //获取失败
|
||
console.log("获取会话列表失败, code:" + error.code + " content:" + error.content);
|
||
},
|
||
});
|
||
});
|
||
}
|
||
|
||
//获取指定会话的消息列表
|
||
export function getConversationMessages(goeasy, userid, imestamp) {
|
||
return new Promise((resolve, reject) => {
|
||
var im = goeasy.im;
|
||
im.history({
|
||
id: userid, //用户id或者群id
|
||
type: GoEasy.IM_SCENE.PRIVATE, //群聊:GoEasy.IM_SCENE.GROUP, 客服:GoEasy.IM_SCENE.CS,
|
||
lastTimestamp: imestamp, //上次查询结果里最后一条消息的时间戳,首次查询传入null即可
|
||
limit: 30, //可选项,返回的消息条数,默认为10条,最多30条
|
||
onSuccess: function (result) {
|
||
console.log("获取消息列表成功", result);
|
||
resolve(result.content);
|
||
}, //查询成功
|
||
onFailed: function (error) {
|
||
console.log("获取消息列表失败, code:" + error.code + " content:" + error.content);
|
||
}, //查询失败
|
||
});
|
||
});
|
||
}
|
||
|
||
//发送消息
|
||
export function sendMessage(goeasy, userid, message, avatar, nickname) {
|
||
return new Promise((resolve, reject) => {
|
||
var im = goeasy.im;
|
||
//创建消息, 内容最长不超过3K,可以发送字符串,对象和json格式字符串
|
||
let textMessage = im.createTextMessage({
|
||
text: message, //消息内容
|
||
to: {
|
||
type: GoEasy.IM_SCENE.PRIVATE, //私聊还是群聊,群聊为GoEasy.IM_SCENE.GROUP
|
||
id: userid, //接收方用户id
|
||
data: { "avatar": avatar, "nickname": nickname } //接收方用户扩展数据, 任意格式的字符串或者对象,用于更新会话列表conversation.data
|
||
}
|
||
});
|
||
|
||
//发送消息
|
||
im.sendMessage({
|
||
message: textMessage,
|
||
onSuccess: function () { //发送成功
|
||
resolve(textMessage);
|
||
},
|
||
onFailed: function (error) { //发送失败
|
||
console.log('发送消息失败,code:' + error.code + ' ,error ' + error.content);
|
||
reject(error);
|
||
}
|
||
});
|
||
|
||
});
|
||
}
|
||
|
||
//消息已读
|
||
export function messageRead(goeasy, userid) {
|
||
return new Promise((resolve, reject) => {
|
||
var im = goeasy.im;
|
||
im.markMessageAsRead({
|
||
id: userid,
|
||
type: GoEasy.IM_SCENE.PRIVATE, //群聊:GoEasy.IM_SCENE.GROUP, 客服消息:GoEasy.IM_SCENE.CS,
|
||
onSuccess: function () {
|
||
resolve()
|
||
},
|
||
onFailed: function (error) {
|
||
console.log('标记私聊已读失败', error);
|
||
},
|
||
});
|
||
});
|
||
}
|
||
//发送自定义消息
|
||
export function sendCustomMessage(goeasy, type, userid, order, avatar, nickname) {
|
||
return new Promise((resolve, reject) => {
|
||
var im = goeasy.im;
|
||
|
||
// 创建自定义消息
|
||
var customMessage = im.createCustomMessage({
|
||
type: type, //字符串,可以任意自定义类型
|
||
payload: order,
|
||
to: {
|
||
type: GoEasy.IM_SCENE.PRIVATE, //私聊还是群聊,群聊为GoEasy.IM_SCENE.GROUP
|
||
id: userid, //接收方用户id
|
||
data: { "avatar": avatar, "nickname": nickname } //好友扩展数据, 任意格式的字符串或者对象,用于更新会话列表conversation.data
|
||
}
|
||
})
|
||
|
||
// 发自定义消息
|
||
im.sendMessage({
|
||
message: customMessage,
|
||
onSuccess: function () { //发送成功
|
||
resolve(customMessage);
|
||
},
|
||
onFailed: function (error) { //发送失败
|
||
console.log('Failed to send message,code:' + error.code + ',error' + error.content);
|
||
}
|
||
});
|
||
});
|
||
}
|
||
|
||
//置顶会话
|
||
export function conversationTop(goeasy, conversation, top) {
|
||
return new Promise((resolve, reject) => {
|
||
var im = goeasy.im;
|
||
im.topConversation({
|
||
conversation: conversation,
|
||
top:top ,//或者 false
|
||
onSuccess: function () {
|
||
resolve('成功');
|
||
},
|
||
onFailed: function (error) {
|
||
console.log( '失败:', error);
|
||
},
|
||
});
|
||
});
|
||
}
|
||
//删除会话
|
||
export function conversationDelete(goeasy, conversation) {
|
||
return new Promise((resolve, reject) => {
|
||
var im = goeasy.im;
|
||
im.removeConversation({
|
||
conversation: conversation,
|
||
onSuccess: function () {
|
||
resolve('删除会话成功');
|
||
},
|
||
onFailed: function (error) {
|
||
console.log(error);
|
||
},
|
||
});
|
||
});
|
||
} |