VUE项目集成环信WebIM即时通讯以及所遇到的问题

Vue3项目使用腾讯即时通信IM 阅读详情

功能背景:

之前和朋友一起做了一个wbe项目集成环信的即时通信的功能,做的时候感叹web端文档太少,而且npm包有一些坑,记录下来写了这篇博客,之后不断有人加我微信问我,怎么集成.现在我再来重写一下这篇博客.

环信web集成功能介绍:

首先:在web端环信是不提供界面的,能拿到的官方的demo也只是用react写的编译后的文件,所以你要自己写UI

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

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

"easemob-websdk": "4.0.1",

正文:

这几天和朋友做的一个web项目中需要集成环信的即时通讯功能,上网查了很多资料,也试做了一个发送消息的demo.感觉用起来真是简单方便,只需要提供Appkey,账号和密码就可以登录环信,而且功能强大,支持发送表情,图片,文件,消息已读,以及视频直播.

    做demo的时候只直接使用<script>标签引入的sdk,正如环信所说

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

我在集成的时候遇到了很多坑

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

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

 

下面说一下我的集成方式

  1. npm i easemob-websdk strophe.js  --save
      安装 easemob-websdk 和strophe.js 包 我用安装后是 
     "easemob-websdk": "^1.8.3",
     "strophe.js": "^1.2.16"
    
  2. 修改三个文件

    /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的话请把我所有博客点赞一遍,再请加我微信,免费发你代码

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

demo效果图如下

 

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

 

demo源码https://download.youkuaiyun.com/download/github_35631540/12498561

vue2.0 web端使用腾讯IM,不太熟练,可自己进行重构 1:安装腾讯IM 腾讯文档走起即时通信 IM 集成 SDK(Web & 小程序 & uni-app)-自实现 UI 集成方案-文档中心-腾讯云-腾讯云(1):基本配置走起 2:登录到腾讯IM(可在用户登录账号后直接进行如下操作) 3:监听IM的事件............... 阅读详情

相关推荐

vue-cli项目集成环信WebIM

环信SDK相关文档: http://docs.easemob.com/im/start    在vue-cli项目中配置和使用环信WebIM    1、执行下面两行之一安装node版本的环信SDK        npm install easemob-websdk --save        cnpm install easemob-websdk --save    2、安装strophe.js,...

u014611616的博客 8878

基于vue2.x 聊天(IM)UI组件,开箱即用

m-chat 介绍 基于vue2.x 聊天(IM)UI组件(3.x以后支持) 演示 Demo 安装 npm install @maybecode/m-chat 全局安装 import Vue from 'vue' import MChat from '@maybecode/m-chat' Vue.use(MChat) 局部安装 import MChat from '@maybecode/m-chat' export default { components: { MChat } }

或许丶Blog 4134

关于vue集成环信即时通讯的Web IM

Vue集成环信@[TOC] 原因: 因为原有项目需要一个商家与客户之间的聊天通讯,需要商家后台和客户进行聊天,这边IOS老大选择使用环信的集成. 注:这里感谢一位大佬提供的一些帮助 https://blog.youkuaiyun.com/github_35631540/article/details/80278114 这是大佬的文章, 问题: 看了一下环信的文档,下载的demo是用React写的,然后找了面...

web_whx的博客 3399

推荐开源项目:Vue-IM - 实时通信组件库

推荐开源项目:Vue-IM - 实时通信组件库 项目地址:https://gitcode.com/gh_mirrors/vu/vue-im 项目简介 Vue-IM 是一个基于 Vue.js 的实时通信组件库,它为开发者提供了构建聊天功能所需的全套工具。通过简单易用的 API 和组件,你可以快速集成到你的 Vue 应用中,实现即时通讯功能,如一对一聊天、群聊、消息历史记录管理等。该项目的源代码托管在...

gitblog_00059的博客 1133

vue-im:基于vue2.0的即时通讯App

vue-im 基于、、的即时通讯App 更新内容 新增删除好友功能 添加好友申请成功增加轻提示 安装工程 npm install 启动工程 npm run serve 线上预览地址(建议使用Chrome浏览器切换至手机模式下预览) 后端工程地址 android测试包安装 动图预览 聊天列表 好友列表 聊天界面 添加好友

vue即时通讯IM聊天源码 v1.1.0.zip

vue即时通讯IM聊天源码 v1.1.0.zip

十分钟利用环信WebIM-vue3-Demo,打包上线一个即时通讯项目【含音视频通话】

这篇文章无废话,只教你如果接到即时通讯功能需求,十分钟利用环信WebIM-vue3-Demo,打包上线一个即时通讯项目【包含音视频通话功能】

huan132456765的博客 1972

Autoware.universe部署03:与Carla(二进制版)联调

本文介绍了 Autoware.universe 与 Carla 二进制版的联调过程。Autoware.universe 是一个开源的自动驾驶软件平台,而 Carla 则是一个用于自动驾驶仿真的开源工具。将这两者联调起来可以在仿真环境中测试和验证 Autoware.universe 的功能和性能,为自动驾驶系统的开发和测试提供有力支持。

zardforever123的博客 7371

IM 即时通讯实战:环信Web IM极速集成

利用环信 IM Web 端 SDK 快速实现在 Vue.js 中发送出一条 Hello World!

huan132456765的博客 1854

从药企研发视角:如何用GNN提升分子水溶性预测准确率?PyTorch+ESOL全案例

本文从药企研发的实际需求出发,详细介绍了如何利用图神经网络(GNN)技术,结合PyTorch框架和ESOL数据集,构建并优化分子水溶性预测模型。通过完整的代码案例,深入探讨了分子图数据处理、GNN架构设计、超参数调优以及模型评估与解释等关键环节,旨在帮助研发团队提升预测准确率,从而更高效地筛选和优化候选药物分子。

weixin_29054399的博客 293

(OSTrack)Joint Feature Learning and Relation Modeling for Tracking A One-Stream Framework

Joint Feature Learning and Relation Modeling for Tracking A One-Stream Framework (OSTrack)

小火山的博客 1653

vue集成环信Web IM

vue引入集成环信Web IM有2种方式 官方链接 1、NPM 2、引用本地文件 这里采用第一种: 1.1、通过 NPM 安装 Web SDK。 npm install easemob-websdk --save 1.2、先 import ,再访问 Web IM 。 import websdk from "easemob-websdk" 1.3、在项目main.js内配置 const config = { xmppURL: '//im-api.easemob.com', // xmpp

曳猫的博客 2156

PADS Logic VX2.5元件绘制全流程:从零开始创建自定义元件库

本文详细介绍了在PADS Logic VX2.5中从零开始创建自定义元件库的全流程。内容包括理解PADS独特的四库分立结构、绘制原理图符号(CAE封装)、关联PCB封装、创建元件类型以及最终的调用验证。掌握元件绘制技能能从根本上提升设计效率、确保设计规范统一,并从源头杜绝原理图与PCB之间的关联错误,是硬件工程师必备的核心能力。

oo7890的博客 444

vue cli4接入环信webIM

vue cli4接入环信webIM 1.安装 npm install easemob-websdk --save 2.配置文件WebIMConfig.js /** * 环信配置文件 * Filename: webIMConfig.js * Author: * Time: */ let appKey = '' if (process.env.NODE_ENV === 'development') { appKey = '111111111111#ceshi'// 测试(放自己的appKe

weixin_39983904的博客 466

RandLA-Net复现SemanticKITTI和S3DIS数据集

RandLA-Net复现KITTI和室内数据集

weixin_48845174的博客 4122

S7-1200 G2移植旧版本S7-1200程序的具体方法示例

S7-1200 G2移植旧版本S7-1200程序的具体方法示例

Robot_PLC_HMI_Automation 1515

vue 集成环信 web im 加 一对一视频通话

vue引入集成环信Web IM有2种方式 1、NPM 2、引用本地文件 这里采用第一种: 1.1、通过 NPM 安装 Web SDK npm install easemob-websdk --save // 核心功能 npm install easemob-webrtc --save //单人视频 1.2、在main.js引入 // 引入环信 import websdk from "easemob-websdk" // 白板 // 引入视频配置 import webrtc from "easemob-we

曳猫的博客 1943

基于深度学习的工业零件缺陷检测系统

工业零件缺陷检测系统摘要 本文介绍了一个基于深度学习的工业零件缺陷检测系统解决方案。该系统采用Faster R-CNN目标检测算法,结合PyTorch框架和OpenCV图像处理库,实现了对工业零件表面缺陷(如裂纹、划痕、凹坑等)的自动检测与定位。系统包含完整的开发流程:从数据采集与标注、数据增强预处理、模型构建与训练,到最终的评估与部署。相比传统机器视觉方法,该深度学习方案具有更强的特征表示能力和环境适应性,能够有效提升工业质检的准确率和效率。文章详细阐述了系统架构设计、实现细节和优化策略,并提供了完整的代

huanghm88的专栏 286

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

功能背景:以前和朋友一块儿作了一个wbe项目集成环信的即时通讯的功能,作的时候感叹web端文档太少,并且npm包有一些坑,记录下来写了这篇博客,以后不断有人加我微信问我,怎么集成.如今我再来重写一下这篇博客.javascript环信web集成功能介绍:首先:在web端环信是不提供界面的,能拿到的官方的demo也只是用react写的编译后的文件,因此你要本身写UIhtml其次:使用聊天功能前的登陆,...

weixin_30121389的博客 453

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

vue 环信集成

vue 环信集成 查看官方文档 下载的vue demo 需求不合适自己的 ,所以改吧了改吧 需要写一个单聊的功能 不需要加好友 只是单纯的聊天 因为公司没买增值服务 太费钱了 所以只做个本地存储 退出就删 因为store一刷新就没了 所以就存浏览器了 安装 easemob-websdk npm install easemob-websdk --save 安装 moment npm...

lishi9092的博客 847

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

vue项目集成融云webIM即时通讯

本次平台开发需要集成融云第三方webIM即时通讯实现单点聊天功能,一开始自己在网上找了写资料,但是不全,后来自己通过查看融云官网,自己手写了一份,分享给大家。(融云官网)。 1、请前往<a href="https://developer.rongcloud.cn/signup">融...

choumi6821的博客 1896

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

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

项目背景 环信webim 官方没有vue版本的,自己就根据sdk重写了个vue版本的,只实现了基础的 登录 群组功能,其他的可以根据需要参考官方文档,添加相应的功能。 环信webim SDK相关文档: http://docs-im.easemob.com/im/web/intro/start 先使用vue-cli新建一个typescript项目 集成webim 安装环信sdk和st...

weixin_30500289的博客 283

Vue 集成环信 SDK

本文介绍了环信Web SDK的集成与初始化流程:1. 准备工作包括注册环信账号、创建应用获取AppKey,以及通过npm安装SDK。2. 配置环节详细说明了如何引入SDK、创建配置文件WebIMConfig.js和初始化文件WebIM.js,包含各类参数设置如自动登录、消息缓存等。3. 事件处理部分讲解了连接状态和消息接收的监听方法,包括文本消息、自定义消息等回调处理。4. 最后介绍用户相关操作,如登录、加入/退出聊天室,以及获取历史消息的API使用方式。整个流程涵盖了环信Web SDK从集成到基础功能实现

qq_30193097的博客 740

Vue中集成环信

这里写自定义目录标题 #1. 通过 NPM 安装 Web SDK。 npm install easemob-websdk --save #2.main.js中先 import ,再访问 Web IM import websdk from "easemob-websdk" 注:该方式只引用了 Web SDK ,仍需在项目里配置 WebIMConfig 文件内的参数,用于实例化 websdk。 #3....

qq_27686403的博客 440

vue集成环信IM

vue 集成环信im 简单demo 环信AppKey:1106190415055331#test 测试账号: test1 123456 test2 123456test3 123456 默认登录test1 用vuex统一管理聊天对象、聊天信息等 点击相应的对象,发送文本 1. 引入环信依赖 2. vuex 环信前期准备全局状态控制 import {...

weixin_30487317的博客 676
上一篇: SVG精髓阅读笔记
下一篇: window下将Mongodb服务设置为开机自启
拿我格子衫来
拿我格子衫来 领域专家: 前端开发技术领域 领域专家: 前端开发技术领域
博客等级 码龄10年 6万+粉丝 858原创
评论 25
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

拿我格子衫来

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值