消息通讯错误无法连接服务器,vue使用融云即时通讯,老是报了发送失败,服务器超时...

1、问题是:基于vue+融云实现即时通讯,连接融云是成功的,但是在发送消息时,有时连接成功,有时发送失败,这是什么原因呢?

以下是我的代码:

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);

}

});

},

}

我也不知道怎么环节出现在哪里,参数配置也正确了,先初始化RongIMLib.RongIMClient.init("lmxuhwagl5ukd");再建立连接也是正确

但是不知道为什么,一会儿可以发送消息成功,一会儿失败

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值