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)相关推荐

  1. websocket 发送图片_基于WebSocket的web端IM即时通讯应用的开发

    基于WebSocket的web端IM即时通讯应用的开发 功能列表: 1.Web端的IM即时通讯应用 2.支持上线.下线.实时在线提醒 3.单聊.群聊的建立 4.普通文字.表情.图片的传输(子定义富文本 ...

  2. mob sdk vue 短信验证_vueCli集成环信SDK

    >[danger]把环信SDK集成到vueCli中 ---- 1. [登录环信即时通信云]([https://www.easemob.com/](https://www.easemob.com/ ...

  3. mui初级入门教程(五)— 聊聊即时通讯(IM),基于环信 web im SDK

    文章来源:小青年原创 发布时间:2016-06-15 关键词:mui,环信 web im,html5+,im,页面传值,缓存 转载需标注本文原始地址: http://zhaomenghuan.gith ...

  4. Android基于环信SDK开发IM即时聊天(一)

    2016-09-02更新:可以看一下最新的这篇文章和源码,Android基于环信SDK开发IM即时聊天(二) 目前市面上我了解的做第三方即时聊天SDK的有两家:环信.融云,这里我使用环信SDK来完成即 ...

  5. 基于环信sdk在uni-app框架中快速开发一款多平台社交Demo

    说在前面:此款 demo 是基于 环信sdk 开发的一款具有单聊.群聊.聊天室.音视频等功能的应用.在此之前我们已经开发完 Vue.react(web端).微信小程序.这三个热门领域的版本,如有需要源 ...

  6. Android基于环信SDK开发IM即时聊天(二)

    声明1:北京时间现在是2019/6/10,评论里的问题我看到了,这几天我找时间看看源代码问题出在哪,在此感谢大家的监督 声明2:此Demo我是在5.1测试机上测试通过,感谢WTQ_DOMIAN的评论, ...

  7. iOS 基于环信SDK实现即时通讯-文字聊天

    这里介绍集成环信SDK3.0自定义聊天页面,后面有练习项目地址 首先到环信官网下载环信SDK.由于后续会实现语音.视频,我这里使用的是带有语音的SDK 下载完成后把HyphenateFullSDK文件 ...

  8. 基于环信的仿QQ即时通讯的简单实现

    代码地址如下: http://www.demodashi.com/demo/11645.html 我的博客地址 之前一直想实现聊天的功能,但是感觉有点困难,今天看了环信的API,就利用下午的时间动手试 ...

  9. android 自定义表情包,android基于环信的聊天和表情自定义

    环信sdk的导入 自定义聊天界面 此处只有静态图,请谅解. 自定义表情发送 自定义聊天界面 简单说下自定义的聊天界面,一个带有recyclerview和的xml文件,和对应的adapter即可.rec ...

最新文章

  1. Vue - 表单
  2. 枚举远程计算机用户名,枚举会话ID(可以用来检测当前windows用户是否是远程登录!)...
  3. 2020中国人工智能年度评选报名即将截止!4大类别7大奖项开放申请
  4. 美容院会籍管理,看着简单,其实很复杂
  5. 修改CodeSmith中的SchemaExplorer.MySQLSchemaProvider
  6. sap scc4 客户端设置
  7. 如何识别真正的程序员
  8. Exchange Server 2013 一步步安装图解
  9. java反射机制的原理与简单使用
  10. 1526B. I Hate 1111
  11. 郁闷的开始--8月21日
  12. 利用vbs脚本编写Windows XP/2003序列号更改器
  13. android课程设计多彩的霓虹,Android-自定义TextView(彩色字体与霓虹灯字体以及TextView的多项字体效果)...
  14. Linux配置8021.q vlan实践篇
  15. 阿卡迪亚大学计算机专业好考吗,加拿大阿卡迪亚大学热门专业介绍
  16. @RunWith注解作用
  17. 赤壁之战(dp树状数组)
  18. 中国通信服务股份有限公司之广通服的划分!
  19. WORDPRESS 网站打不开 error establishing a database connection 、is marked as crashed and should be repa
  20. Dao,Service,Controller层作用

热门文章

  1. 正则表达式与“三贱客”
  2. Python和VBA连接MySQL
  3. [Servlet 1] JSP基础知识
  4. Golang中的fmt用法
  5. 180107 逆向-Xman移动安全冬令营选拔赛
  6. 顺序结构综合实训(专业)
  7. 爬虫和办公自动化(三)
  8. 为什么变压器不能用DC直流电源供电?
  9. 等保三级合规要求:HTTPS安全加密将势在必行
  10. 微信小程序如何实现点击后地图选择定位位置