created() {
//建立連接
RongIMLib.RongIMClient.init("lmxuhwagl5ukd"); ?//這是關鍵點,需要填寫appkey ? ? ? ? ? ? ?lmxuhwagl5ukd
this.StatusListener();
this.getUser()
},
method:{
//下面是建立連接的
StatusListener(){
//RongIMLib.RongIMClient.init('4z3hlwrv4ovrt'); ?//這是關鍵點,需要填寫appkey
//建立連接
RongIMClient.setConnectionStatusListener({
onChanged: function (status) {
// status 標識當前連接狀態
switch (status) {
case RongIMLib.ConnectionStatus.CONNECTED:
console.log('鏈接成功');
break;
case RongIMLib.ConnectionStatus.CONNECTING:
console.log('正在鏈接');
break;
case RongIMLib.ConnectionStatus.DISCONNECTED:
console.log('斷開連接');
break;
case RongIMLib.ConnectionStatus.KICKED_OFFLINE_BY_OTHER_CLIENT:
console.log('其他設備登錄');
break;
case RongIMLib.ConnectionStatus.DOMAIN_INCORRECT:
console.log('域名不正確');
break;
case RongIMLib.ConnectionStatus.NETWORK_UNAVAILABLE:
console.log('網絡不可用');
break;
}
}
});
// 消息監聽器
RongIMClient.setOnReceiveMessageListener({
// 接收到的消息
onReceived: function (message) {
// 判斷消息類型
switch(message.messageType){
case RongIMClient.MessageType.TextMessage:
// message.content.content => 文字內容
break;
case RongIMClient.MessageType.VoiceMessage:
// message.content.content => 格式為 AMR 的音頻 base64
break;
case RongIMClient.MessageType.ImageMessage:
// message.content.content => 圖片縮略圖 base64
// message.content.imageUri => 原圖 URL
break;
case RongIMClient.MessageType.LocationMessage:
// message.content.latiude => 緯度
// message.content.longitude => 經度
// message.content.content => 位置圖片 base64
break;
case RongIMClient.MessageType.RichContentMessage:
// message.content.content => 文本消息內容
// message.content.imageUri => 圖片 base64
// message.content.url => 原圖 URL
break;
case RongIMClient.MessageType.InformationNotificationMessage:
// do something
break;
case RongIMClient.MessageType.ContactNotificationMessage:
// do something
break;
case RongIMClient.MessageType.ProfileNotificationMessage:
// do something
break;
case RongIMClient.MessageType.CommandNotificationMessage:
// do something
break;
case RongIMClient.MessageType.CommandMessage:
// do something
break;
case RongIMClient.MessageType.UnknownMessage:
// do something
break;
default:
// do something
}
}
});
},
nowNum(token){
//自己的token------從接口獲取,寫到緩存
//var token = JSON.parse(localStorage.getItem('userInfo')).IMUser.token//"WzrthC5f4UfuiI7dIwCQ5fwtGfqCdobpowIZkcQnj8PQOQuAJb/nIi1ayzGFwJguvbQZxbJH3x0=";
//var token = '12'
RongIMClient.connect(token, {
onSuccess: function(userId) {
console.log('Connect successfully. ' + userId);
},
onTokenIncorrect: function() {
console.log('token 無效');
},
onError: function(errorCode){
var info = '';
switch (errorCode) {
case RongIMLib.ErrorCode.TIMEOUT:
info = '超時';
break;
case RongIMLib.ConnectionState.UNACCEPTABLE_PAROTOCOL_VERSION:
info = '不可接受的協議版本';
break;
case RongIMLib.ConnectionState.IDENTIFIER_REJECTED:
info = 'appkey不正確';
break;
case RongIMLib.ConnectionState.SERVER_UNAVAILABLE:
info = '服務器不可用';
break;
}
console.log(info,'z這個是建立的連接~');
}
});
},
//獲取用戶信息
getUser(){
const that = this
axios.get('http://apitest.bnd.microzan.com.cn/login/checkUserExistByOpenId?openId=oR0_h1aQZxobgoUSU7jlSBIUZk4U')
.then(function (res) {
if(res.data.code ?== '200'){
console.log(res.data.data.IMUser,'用戶信息~~')
that.userInfor = res.data.data.IMUser
that.nowNum(res.data.data.IMUser.token);
}
})
.catch(function (error) {
console.log(error);
});
},
//發送消息
send() {
let that = this
let msg = new RongIMLib.TextMessage({ content: that.say, extra: 'https://img.52z.com/upload/news/image/20171120/20171120080335_21404.jpg' });
let conversationType = RongIMLib.ConversationType.PRIVATE; // 單聊, 其他會話選擇相應的消息類型即可
// let targetId = JSON.parse(localStorage.getItem('userInfo')).IMUser.assistantId; // 目標 Id
//let targetId = that.userInfor.assistantId
let targetId = 113
//console.log(that.userInfor.assistantId,'發消息的userId~~')
RongIMClient.getInstance().sendMessage(conversationType, targetId, msg, {
onSuccess: function (message) {
// message 為發送的消息對象并且包含服務器返回的消息唯一 Id 和發送消息時間戳
console.log('Send successfully',message,message.content.content);
let say = {
type:1,
css:'right',
txt:message.content.content,
headImg:'https://img.52z.com/upload/news/image/20171120/20171120080335_21404.jpg'
}
that.answer.push(say)
that.say = ''
},
onError: function (errorCode, message) {
let info = '';
switch (errorCode) {
case RongIMLib.ErrorCode.TIMEOUT:
info = '超時';
break;
case RongIMLib.ErrorCode.UNKNOWN:
info = '未知錯誤';
break;
case RongIMLib.ErrorCode.REJECTED_BY_BLACKLIST:
info = '在黑名單中,無法向對方發送消息';
break;
case RongIMLib.ErrorCode.NOT_IN_DISCUSSION:
info = '不在討論組中';
break;
case RongIMLib.ErrorCode.NOT_IN_GROUP:
info = '不在群組中';
break;
case RongIMLib.ErrorCode.NOT_IN_CHATROOM:
info = '不在聊天室中';
break;
}
console.log('發送失敗: ' + info + errorCode);
}
});
},
}