融云通讯服务器,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);

}

});

},

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/456854.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mongodb基本使用方法

一、操作mongodb数据库 1、创建数据库 语法:use 数据库名 注意:如果数据库不存在则创建数据库,否则切换到指定的数据库 注意:如果刚刚创建的数据库不在列表内,如果要显示它,我…

Device eth0 does not seem to be present,delaying initialization的解决办法

最近由于重装了操作系统导致之前配置好的集群出现了问题,需要修正一下,在刚开始为NameNode配置网络设置的时候,已经按照网上的相关步骤配置好了ifcfg-eth0文件中的内容,但在ifconfig时却无法观察到设置的静态IP地址,后…

Angularjs 动态添加指令并绑定事件

先说使用场景,动态生成DOM元素并绑定事件,非常常见的一种场景,用jq实现效果: http://jsbin.com/gajizuyuju/edit?html,js,output var count0; $("#test").on("click",function(event){if(event.target.tagNa…

css标签resolution,html/css to fit all screen resolution

可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):问题:Im working on the website and Im trying to make it responsive to all resolutions but without success..Here is HTML:Lorem ipsum nasov je? "Lorem…

钉钉开发笔记(一)

钉钉开发分为:1、移动客户端。2、PC端。3、服务端。三个平台的开发。 1、移动端:面对钉钉手机用户和企业用户。 2、同上主要面向PC端的用户和企业。 3、服务端,用于用户和企业内部管理的平台方向,例如OA网站。 本人主要从事移动端…

import导入模块

面试题: import module与from module import * 两种模块导入有何区别 1. import module 引用共享变量时,要使用module.变量名,而from module import * 直接使用变量名即可 2. import module方式 本地不会创…

在启动HDFS时,针对集群中namenode无法识别datanode的问题的解决方法

最近由于重装了系统,需要对之前搭建的集群要做些改动。在对每个虚拟机的网络进行正确的配置之后,重新执行hadoop/sbin/start-dfs.sh命令来启动HDFS,然而namenode却无法识别datanode。 后来通过对之前学过的知识进行回顾和梳理发现了问题的所…

HBase的基础知识

1.HBase(NoSQL:不是关系型数据库)的逻辑数据模型 HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。HBase利用Hadoop HDFS作为其文件存储系统…

Django 部署基础【使用 Nginx + uWSGI 的方式来部署来 Django】

本文主要讲解在 Linux 平台下,使用 Nginx uWSGI 的方式来部署来 Django,这是目前比较主流的方式。当然你也可以使用 Gunicorn 代替 uWSGI,不过原理都是类似的,弄懂了其中一种,其它的方式理解起来问题也不会很大。 有很…

css的属性是变量是怎么表达,CSS自定义属性(变量)

Github上有个叫electron-api-demos的项目,看代码的时候发现了这么一个css文件(variables.css)::root {--color: hsl(0,0%,22%);--color-subtle: hsl(0,0%,44%);--color-strong: hsl(0,0%,11%);--color-link: hsl(0,0%,22%);--color-border: hsl(0,0%,88%…

Exception in thread main java.lang.UnsupportedClassVersionError的另类解决办法

最近在Linux虚拟机上跑在windows平台上的eclipes打出来的jar包时报出Exception in thread “main” java.lang.UnsupportedClassVersionError的错误: 经过上网查询了解到是因为自己Windows使用的是jdk1.8版本,而Linux使用的是jdk1.7版本,所…

Linux命令【第一篇】

1、创建一个目录/data 记忆方法:英文make directorys缩写后就是mkdir。 命令: mkdir /data 或 cd /;mkdir data #提示:使用分号可以在一行内分割两个命令。 实践过程: 方法一: [rootoldboy66 ~]# mkdir /data #查…

Jenkins + gitlab webhook实现自动化部署

1、先在Jenkins安装插件Gitlab Hook Plugin 和Build Authorization Token Root Plugin;2.插件安装完成后在任务里添加token3、在gitlab上添加钩子4、点击测试钩子或push代码再看Jenkins已经在构建了就说明成功了(也可以在浏览器直接执行这个URL&#xff…

多继承以及MRO顺序【super().的使用】

多继承以及MRO顺序 1. 单独调用父类的方法 # codingutf-8print("******多继承使用类名.__init__ 发生的状态******") class Parent(object):def __init__(self, name):print(parent的init开始被调用)self.name nameprint(parent的init结束被调用)class Son1(Paren…

人工智能专业词汇集

最近看到一篇关于AI专业词汇总结的文章,感觉不错,分享一下。 对应的词汇项目地址为:https://github.com/jiqizhixin/Artificial-Intelligence-Terminology 本词汇库目前拥有的专业词汇共计 500 个,主要为机器学习基础概念和术语…

js 当前日期增加自然月

js 在日期不满足的情况下就会自动加1个月,比如在当前时间为3月31号,传入1,1两个参数,预期结果为2月29日,但是结果输出了3月2日。就是如果不满就会溢出到下个月,后来看了api发现了setMonth有两个方法&#x…

好雨云帮如何对接Git Server

前言 云帮目前支持对接GitLab、Gogs、Github,或者主流代码托管平台的公开项目,后期会考虑接入其他类型的Git服务。 私有云 GitLab是一个用于仓库管理系统的开源项目,私有云服务里使用比较多的自建Git服务。 对接GitLab 通过应用市场进行安装Gitlab 安装G…

Python 生成requirement 使用requirements.txt

python项目中必须包含一个 requirements.txt 文件,用于记录所有依赖包及其精确的版本号。以便新环境部署。requirements.txt可以通过pip命令自动生成和安装生成requirements.txt文件 pip freeze > requirements.txt安装requirements.txt依赖 pip install -r requ…

Source Insight上手教程

目录Project的建立和工作区域同步查看定义查找引用查找调用Source Insight常用快捷键 目录 最近刚参加工作,第一个任务就是查看项目的源码,熟悉代码结构。于是乎就简单学习了Source Insight。在这里就转载别人的文章当做自己的笔记,便于自己…

微信禁用右上角的分享按钮,WeixinJSBridge API以及隐藏分享的子按钮等菜单项

今天在做隐藏微信右上角的分享按钮 百度查到的一串代码&#xff0c;挺好用的 <!--禁用微信分享按钮--><script>function onBridgeReady() {WeixinJSBridge.call(hideOptionMenu);}if (typeof WeixinJSBridge "undefined") {if (document.addEventListen…