功能背景:

以前和朋友一块儿作了一个wbe项目集成环信的即时通讯的功能,作的时候感叹web端文档太少,并且npm包有一些坑,记录下来写了这篇博客,以后不断有人加我微信问我,怎么集成.如今我再来重写一下这篇博客.javascript

环信web集成功能介绍:

首先:在web端环信是不提供界面的,能拿到的官方的demo也只是用react写的编译后的文件,因此你要本身写UIhtml

其次:使用聊天功能前的登陆,是IM用户登陆,不是用你的环信帐号和密码vue

最后:这篇文章是以当前最新版sdk写的,当前最新版是java

"easemob-websdk": "^1.8.3",

正文:

这几天和朋友作的一个web项目中须要集成环信的即时通信功能,上网查了不少资料,也试作了一个发送消息的demo.感受用起来真是简单方便,只须要提供Appkey,帐号和密码就能够登陆环信,并且功能强大,支持发送表情,图片,文件,消息已读,以及视频直播.node

作demo的时候只直接使用

集成方式,环信的webSDK集成文档是不包含Vue项目的集成的web

我在集成的时候遇到了不少坑vue-cli

好比找不到Strophe对象 ,再好比使用require方式引入strophe 包Base64未定义,真是头大.后来功夫不负有心人,终于让我变查资料,边摸索,终于解决了全部问题,用户可以上线了.npm

网上有一篇博文也是介绍环信SDK集成到Vue项目中 地址vue-cli项目集成环信WebIM 另外在环信社区里也有一个文章做为参考Vue-cli整合环信WebIMapi

下面说一下个人集成方式

npm i easemob-websdk strophe.js --save   安装 easemob-websdk 和strophe.js 包 我用安装后是  "easemob-websdk": "^1.8.3",

"strophe.js": "^1.2.16"

修改三个文件

/node_modules/strophe.js/strophe.js

/node_modules/easemob-websdk/src/connection.js

/webim.config.js

在connection.js中头部加入如下几行代码

var Strophe = require('strophe.js').Strophe;

var meStrophe = require('strophe.js');

$iq = meStrophe.$iq;

$build = meStrophe.$build;

$msg = meStrophe.$msg;

$pres = meStrophe.$pres;

如图

在strophe.js中

setJid: function (jid) {

this.jid = jid;

this.authzid = Strophe.getBareJidFromJid(this.jid);

this.authcid = Strophe.getNodeFromJid(this.jid);

},

getJid: function () {

return this.jid;

},

如图: 在strophe.js的2896行处添加二个方法,即Strophe.Connection.prototype中

在SDK的配置文件中 webim.config.js中

首行var WebIM = {}; 替换成

var WebIM = window.WebIM || {};

尾行添加

window.WebIM = WebIM

3:第三步修改main.js

先引入webim.config.js 再引入sdk为WebIM对象,而后将WebIM对象赋值到Vue的原型上

代码以下

require('./assets/lib/easemob-sdk/webim.config.js')

let WebIM = require('easemob-websdk')

Vue.prototype.$webim = WebIM

const conn = new WebIM.connection({

isMultiLoginSessions: WebIM.config.isMultiLoginSessions,

https: typeof WebIM.config.https === 'boolean' ? WebIM.config.https : location.protocol === 'https:',

url: WebIM.config.xmppURL,

heartBeatWait: WebIM.config.heartBeatWait,

autoReconnectNumMax: WebIM.config.autoReconnectNumMax,

autoReconnectInterval: WebIM.config.autoReconnectInterval,

apiUrl: WebIM.config.apiURL,

isAutoLogin: true

})

const options = {

apiUrl: WebIM.config.apiURL,

user: '1',

pwd: 'xiuxiutrip123456',

appKey: WebIM.config.appkey,

success:function (re) {

console.log('连接服务器正常')

},

error:function (err) {

alert(err)

}

}

Vue.prototype.$imconn = conn

Vue.prototype.$imoption = options

第四步:在组件中调用时

代码以下

this.$imoption.user = this.from_username

this.$imoption.pwd = this.currentUserpwd

this.$imconn.open(this.$imoption)

this.$imconn.listen({

onOpened: function (message) {

console.log('用户已上线')

},

onClosed: function (message) {

console.log('用户已下线')

},

onEmojiMessage: this.receiveEmojiMessage,

onPictureMessage: this.receivePictureMessage,

onTextMessage: this.receiveTextMsg

})

到此vue项目集成环信webSDK算是吿一段落了

报错截图:

报此错的请修改 /node_modules/easemob-websdk/src/connection.js

报此错的请修改  /node_modules/strophe.js/strophe.js

报此错修改  webim.config.js

若是须要demo的话(demo是付费的,请尊重别人的劳动成果),请加我微信

npm run dev 访问 http://localhost:8080/#/chat?from_username=2&to_username=1&to_nickname=梦

demo效果图以下

谢谢阅读.若是以为对你有帮助请记得点赞或收藏.欢迎留言讨论.你的支持是我出产优秀博客的动力.

环信是否支持html,VUE项目集成环信WebIM即时通信以及所遇到的问题相关推荐

  1. Vue 简单集成环信SDK

    在这里简单记录下 vue 集成环信 Web SDK 操作,简单SDK操作记录,没有完整demo,勿喷! 准备工作 一. 下载环信 Web SDK + Demo 到本地 git clone https: ...

  2. vue-cli3.0 Typescript 项目集成环信WebIM 群组聊天

    项目背景 环信webim 官方没有vue版本的,自己就根据sdk重写了个vue版本的,只实现了基础的 登录 群组功能,其他的可以根据需要参考官方文档,添加相应的功能. 环信webim SDK相关文档: ...

  3. 环信即时通讯SDK集成——如何使用Swift快速集成环信IM iOS SDK并实现单聊

    本文介绍如何使用swift快速集成环信即时通讯 IM iOS SDK 实现单聊. 前提条件 • Xcode (推荐最新版本). • 安装 iOS 10.0 或更高版本的 iOS 模拟器或 Apple ...

  4. 环信IM SDK使用(一):集成环信SDK及注意事项

    环信IM SDK可以帮助用户快速开发IM相关的应用.如何快速集成环信IM SDK呢? 首先附上环信官网的集成SDK的文档:Android SDK 介绍及导入 一.集成环信IM SDK 1.申请环信Ap ...

  5. 李洪强iOS开发本人集成环信的经验总结_01环信SDK的导入

    李洪强iOS开发本人集成环信的经验总结_01环信SDK的导入 01 - 直接在项目中导入SDK和一些静态库 这个时候,没有错误的编译没有错误的话,就说明SDK已经配置成功 还有一种方法是用cocoap ...

  6. 交友项目【集成环信Api】

    目录 1:自动装配 2:查询用户环信账户 3:环信ID查询用户信息 1:自动装配 在项目中集成环信API,完成即时通信等 环信官方文档地址:Java Server SDK [IM 开发文档] 自动装配 ...

  7. Java服务端集成环信IM

    由于业务需求,需要在系统中集成环信,所以去看了下官方文档,写篇博客分享一下. 在开始之前,我们需要了解一下什么是REST. REST(Representational State Transfer)是 ...

  8. Java服务端集成环信im即时通讯

    Java服务端集成环信im即时通讯 先去GitHub上下载官方给的示例 说明一下环信给的demo 解压下载的包 导入项目之后加几个jar包 注意事项 修改OrgInfo和TokenUtil类 跟据IM ...

  9. 最新安卓集成环信SDK3.5.1步骤详解大白菜版本,记录下

    最近两天一直在查找集成环信SDK的博客与文章,找来找去,最新的集成过程详解也是环信官方SDK更新前的,大部分都是SDK3.4.1之前的,刚才测试环信SDK3.5.1测试成功后就来写篇文章记录下,在这里 ...

最新文章

  1. 对c语言和程序设计基础的体会,C语言程序设计基础与应用
  2. acid php5,ACID原则
  3. GIS中的坐标系定义与转换【转】
  4. 第二届高校大数据比赛之鼠标轨迹识别
  5. 图谱实战 | 斯坦福黄柯鑫:图机器学习在生物图上的应用
  6. WebService技术详解CXF
  7. matlab连通区边界_Matlab图像处理学习笔记(一):二值化、开操作、连通区域提取、重心、ROI...
  8. C语言丨线性表(三):双链表
  9. Netty工作笔记0072---Protobuf内容小结
  10. 自己的  「画面文言修正 check list」
  11. python setup.py卸载
  12. 飞舞的蝴蝶(GraphicsView框架)
  13. 递归统计项目中的非空白代码行数
  14. 监控视频压缩存储—视频实时压缩服务器
  15. excel如何制作图表
  16. IC卡和ID卡的区别
  17. 基于python的flask框架自动回复抖音私信
  18. 基于JAVA家政服务预约网站系统设计与实现 开题报告
  19. 云计算服务在零售行业的革命性作用
  20. 我的几个提升工作效率的小软件(持续更新中...)

热门文章

  1. 什么是零代码?零代码与低代码有什么联系与区别?
  2. Android 飞机大战
  3. 解决:http: TLS handshake error from *
  4. 【caffe】caffe之反卷积层
  5. 爬虫入门(五)抓取网页数据
  6. Apache Log4j2远程代码执行漏洞(CVE-2021-44228)
  7. 数据治理项目之数据管理模板
  8. Ubuntu16.04安装flash
  9. 中级会计职称考试可以带计算机么,中级会计师无纸化考试允许带计算器入场吗?...
  10. PADAUK应广 单片机 PMS132B-S14 PMS132B-S08 PMS132B-S16