环信是否支持html,VUE项目集成环信WebIM即时通信以及所遇到的问题
功能背景:
以前和朋友一块儿作了一个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即时通信以及所遇到的问题相关推荐
- Vue 简单集成环信SDK
在这里简单记录下 vue 集成环信 Web SDK 操作,简单SDK操作记录,没有完整demo,勿喷! 准备工作 一. 下载环信 Web SDK + Demo 到本地 git clone https: ...
- vue-cli3.0 Typescript 项目集成环信WebIM 群组聊天
项目背景 环信webim 官方没有vue版本的,自己就根据sdk重写了个vue版本的,只实现了基础的 登录 群组功能,其他的可以根据需要参考官方文档,添加相应的功能. 环信webim SDK相关文档: ...
- 环信即时通讯SDK集成——如何使用Swift快速集成环信IM iOS SDK并实现单聊
本文介绍如何使用swift快速集成环信即时通讯 IM iOS SDK 实现单聊. 前提条件 • Xcode (推荐最新版本). • 安装 iOS 10.0 或更高版本的 iOS 模拟器或 Apple ...
- 环信IM SDK使用(一):集成环信SDK及注意事项
环信IM SDK可以帮助用户快速开发IM相关的应用.如何快速集成环信IM SDK呢? 首先附上环信官网的集成SDK的文档:Android SDK 介绍及导入 一.集成环信IM SDK 1.申请环信Ap ...
- 李洪强iOS开发本人集成环信的经验总结_01环信SDK的导入
李洪强iOS开发本人集成环信的经验总结_01环信SDK的导入 01 - 直接在项目中导入SDK和一些静态库 这个时候,没有错误的编译没有错误的话,就说明SDK已经配置成功 还有一种方法是用cocoap ...
- 交友项目【集成环信Api】
目录 1:自动装配 2:查询用户环信账户 3:环信ID查询用户信息 1:自动装配 在项目中集成环信API,完成即时通信等 环信官方文档地址:Java Server SDK [IM 开发文档] 自动装配 ...
- Java服务端集成环信IM
由于业务需求,需要在系统中集成环信,所以去看了下官方文档,写篇博客分享一下. 在开始之前,我们需要了解一下什么是REST. REST(Representational State Transfer)是 ...
- Java服务端集成环信im即时通讯
Java服务端集成环信im即时通讯 先去GitHub上下载官方给的示例 说明一下环信给的demo 解压下载的包 导入项目之后加几个jar包 注意事项 修改OrgInfo和TokenUtil类 跟据IM ...
- 最新安卓集成环信SDK3.5.1步骤详解大白菜版本,记录下
最近两天一直在查找集成环信SDK的博客与文章,找来找去,最新的集成过程详解也是环信官方SDK更新前的,大部分都是SDK3.4.1之前的,刚才测试环信SDK3.5.1测试成功后就来写篇文章记录下,在这里 ...
最新文章
- 对c语言和程序设计基础的体会,C语言程序设计基础与应用
- acid php5,ACID原则
- GIS中的坐标系定义与转换【转】
- 第二届高校大数据比赛之鼠标轨迹识别
- 图谱实战 | 斯坦福黄柯鑫:图机器学习在生物图上的应用
- WebService技术详解CXF
- matlab连通区边界_Matlab图像处理学习笔记(一):二值化、开操作、连通区域提取、重心、ROI...
- C语言丨线性表(三):双链表
- Netty工作笔记0072---Protobuf内容小结
- 自己的 「画面文言修正 check list」
- python setup.py卸载
- 飞舞的蝴蝶(GraphicsView框架)
- 递归统计项目中的非空白代码行数
- 监控视频压缩存储—视频实时压缩服务器
- excel如何制作图表
- IC卡和ID卡的区别
- 基于python的flask框架自动回复抖音私信
- 基于JAVA家政服务预约网站系统设计与实现 开题报告
- 云计算服务在零售行业的革命性作用
- 我的几个提升工作效率的小软件(持续更新中...)
热门文章
- 什么是零代码?零代码与低代码有什么联系与区别?
- Android 飞机大战
- 解决:http: TLS handshake error from *
- 【caffe】caffe之反卷积层
- 爬虫入门(五)抓取网页数据
- Apache Log4j2远程代码执行漏洞(CVE-2021-44228)
- 数据治理项目之数据管理模板
- Ubuntu16.04安装flash
- 中级会计职称考试可以带计算机么,中级会计师无纸化考试允许带计算器入场吗?...
- PADAUK应广 单片机 PMS132B-S14 PMS132B-S08 PMS132B-S16