mob sdk vue 短信验证_基于环信SDK的IM即时通讯填坑之路(vue)
1、这里如果注册异常的type==17则代表已注册,那就直接去登录
2、这里id是依据是否在应用内已登录(自己应用,非环信),
如果是未登录(游客状态)则随机一个
Math.ceil(Math.random() * 100000);
如果登录,则用登录后返回的user_id
登录
//环信登录
login() {var userName = localStorage.getItem("liveUser");var options ={
apiUrl: WebIM.config.apiURL,
user: userName,
pwd: md5(userName),
appKey: WebIM.config.appkey,
success: e=>{
console.log('登录成功', e);if(e) {this.addGroup()
}
},
fail: e=>{
console.error('登录失败', e);
}
};
WebIM.conn.open(options);
},
登录成功后就可以加入群组
加入群组
//加入群组
addGroup() {var options ={
groupId:"xxxx", //群组ID
success: function(resp) {
console.log("Response: ", resp);
},
error:function(e) {
console.error("加入群聊异常", e, JSON.parse(e.data));if (e.type == 17) {
console.error("您已经在这个群组里了");
}
}
};
WebIM.conn.joinGroup(options);
},
这里群id是你购买环信后创建应用分配的群id
加群成功,就可以获取群历史消息了
获取历史消息
getMessList() {var options ={
queue:"xxxx",//群组id
isGroup: true,//是否是群聊
count: 20,//返回多少条
success: data =>{this.$store.dispatch('receive_livemsglist',data)//这里把消息加到vuex中存储
this.messList = this.$store.state.liveMsgList
console.log("获取历史消息", data)
},
fail: e=>{
console.log("获取群聊异常", e)
}
};
WebIM.conn.fetchHistoryMessages(options);
},
1、不能依据页码获取数据
这里环信有个bug(也不能说bug,一个不足吧),就是获取历史消息竟然不是依据页码去拉取,也就是我拉取哪一页就获取哪一页。没办法,环信没有提供这个参数。
给环信提供了工单,他那边反馈
解决
先说下,上面这个问题,就是用本地vuex存储了.
vuex的state中
export default{
liveMsgList:[],//消息记录
}
mutations.js中
//消息记录
[RECEIVE_LIVEMSGLIST](state,{liveMsgList}){if(state.liveMsgList.length){
state.liveMsgList.unshift(...liveMsgList)
}else{
state.liveMsgList=liveMsgList
}
},
actions.js中
receive_livemsglist({commit},liveMsgList){
commit(RECEIVE_LIVEMSGLIST,{liveMsgList})
},
2、获取历史消息时,会触发监听接收消息事件
解决
这个是3.0.7 版本 SDK 的已知bug,建议您更新下SDK
监听消息
//环信接收消息
_IMListen() {
WebIM.conn.listen({
onOpened: ()=> { //连接成功回调
console.log("连接成功!")
},//文本消息
onTextMessage: text =>{
console.log("接收到了文本消息", text);if (!text.error && text.type != "chat") {this.messList.push(text);
}
},//连接关闭回调
onClosed: function( message ) {
console.log("连接关闭!",message)
},//收到表情消息
onEmojiMessage: emj =>{
console.log("接收到了表情消息", emj)if (!emj.error && emj.type != "chat") {this.messList.push(emj);
}
},//cmd消息
onCmdMessage: ( message ) =>{
console.log(message,"cmd")
},//收到自定义消息
onCustomMessage: ( message ) =>{
console.log(message,"Custom")
},
onError: e=>{
console.log("接收消息错误", JSON.stringify(e));
},
onRecallMessage:(e)=>{
console.log("消息撤回",e)
},
});
},
发送消息
sendMess() {var id = WebIM.conn.getUniqueId(); //生成本地消息id
var msg = new WebIM.message("txt", id); //创建文本消息
var option ={
msg:this.message, //消息内容
to: "xxx", //接收消息对象(聊天室id)
roomType: false, //群聊类型,true时为聊天室,false时为群组
ext: {}, //扩展消息
success: (id, serverMsgId) =>{
console.log("发送消息成功",serverMsgId)
},
fail: e=>{
console.error("发送消息异常", e)
}
};
msg.set(option);
msg.setGroup("groupchat"); //群聊类型
WebIM.conn.send(msg.body);
}
},
大致流程就这样,不懂的可以评论能解决就会回答。
mob sdk vue 短信验证_基于环信SDK的IM即时通讯填坑之路(vue)相关推荐
- websocket 发送图片_基于WebSocket的web端IM即时通讯应用的开发
基于WebSocket的web端IM即时通讯应用的开发 功能列表: 1.Web端的IM即时通讯应用 2.支持上线.下线.实时在线提醒 3.单聊.群聊的建立 4.普通文字.表情.图片的传输(子定义富文本 ...
- mob sdk vue 短信验证_vueCli集成环信SDK
>[danger]把环信SDK集成到vueCli中 ---- 1. [登录环信即时通信云]([https://www.easemob.com/](https://www.easemob.com/ ...
- mui初级入门教程(五)— 聊聊即时通讯(IM),基于环信 web im SDK
文章来源:小青年原创 发布时间:2016-06-15 关键词:mui,环信 web im,html5+,im,页面传值,缓存 转载需标注本文原始地址: http://zhaomenghuan.gith ...
- Android基于环信SDK开发IM即时聊天(一)
2016-09-02更新:可以看一下最新的这篇文章和源码,Android基于环信SDK开发IM即时聊天(二) 目前市面上我了解的做第三方即时聊天SDK的有两家:环信.融云,这里我使用环信SDK来完成即 ...
- 基于环信sdk在uni-app框架中快速开发一款多平台社交Demo
说在前面:此款 demo 是基于 环信sdk 开发的一款具有单聊.群聊.聊天室.音视频等功能的应用.在此之前我们已经开发完 Vue.react(web端).微信小程序.这三个热门领域的版本,如有需要源 ...
- Android基于环信SDK开发IM即时聊天(二)
声明1:北京时间现在是2019/6/10,评论里的问题我看到了,这几天我找时间看看源代码问题出在哪,在此感谢大家的监督 声明2:此Demo我是在5.1测试机上测试通过,感谢WTQ_DOMIAN的评论, ...
- iOS 基于环信SDK实现即时通讯-文字聊天
这里介绍集成环信SDK3.0自定义聊天页面,后面有练习项目地址 首先到环信官网下载环信SDK.由于后续会实现语音.视频,我这里使用的是带有语音的SDK 下载完成后把HyphenateFullSDK文件 ...
- 基于环信的仿QQ即时通讯的简单实现
代码地址如下: http://www.demodashi.com/demo/11645.html 我的博客地址 之前一直想实现聊天的功能,但是感觉有点困难,今天看了环信的API,就利用下午的时间动手试 ...
- android 自定义表情包,android基于环信的聊天和表情自定义
环信sdk的导入 自定义聊天界面 此处只有静态图,请谅解. 自定义表情发送 自定义聊天界面 简单说下自定义的聊天界面,一个带有recyclerview和的xml文件,和对应的adapter即可.rec ...
最新文章
- Vue - 表单
- 枚举远程计算机用户名,枚举会话ID(可以用来检测当前windows用户是否是远程登录!)...
- 2020中国人工智能年度评选报名即将截止!4大类别7大奖项开放申请
- 美容院会籍管理,看着简单,其实很复杂
- 修改CodeSmith中的SchemaExplorer.MySQLSchemaProvider
- sap scc4 客户端设置
- 如何识别真正的程序员
- Exchange Server 2013 一步步安装图解
- java反射机制的原理与简单使用
- 1526B. I Hate 1111
- 郁闷的开始--8月21日
- 利用vbs脚本编写Windows XP/2003序列号更改器
- android课程设计多彩的霓虹,Android-自定义TextView(彩色字体与霓虹灯字体以及TextView的多项字体效果)...
- Linux配置8021.q vlan实践篇
- 阿卡迪亚大学计算机专业好考吗,加拿大阿卡迪亚大学热门专业介绍
- @RunWith注解作用
- 赤壁之战(dp树状数组)
- 中国通信服务股份有限公司之广通服的划分!
- WORDPRESS 网站打不开 error establishing a database connection 、is marked as crashed and should be repa
- Dao,Service,Controller层作用