VUE專案整合環信WebIM即時通訊以及所遇到的問題
功能背景:
之前和朋友一起做了一個wbe專案整合環信的即時通訊的功能,做的時候感嘆web端文件太少,而且npm包有一些坑,記錄下來寫了這篇部落格,之後不斷有人加我微信問我,怎麼整合.現在我再來重寫一下這篇部落格.
環信web整合功能介紹:
首先:在web端環信是不提供介面的,能拿到的官方的demo也只是用react寫的編譯後的檔案,所以你要自己寫UI
其次:使用聊天功能前的登入,是IM使用者登入,不是用你的環信賬號和密碼
最後:這篇文章是以當前最新版sdk寫的,當前最新版是
"easemob-websdk": "^1.8.3",
正文:
這幾天和朋友做的一個web專案中需要整合環信的即時通訊功能,上網查了很多資料,也試做了一個傳送訊息的demo.感覺用起來真是簡單方便,只需要提供Appkey,賬號和密碼就可以登入環信,而且功能強大,支援傳送表情,圖片,檔案,訊息已讀,以及視訊直播.
做demo的時候只直接使用<script>標籤引入的sdk,正如環信所說
整合方式,環信的webSDK整合文件是不包含Vue專案的整合的
我在整合的時候遇到了很多坑
比如找不到Strophe物件 ,再比如使用require方式引入strophe 包Base64未定義,真是頭大.後來功夫不負有心人,終於讓我變查資料,邊摸索,終於解決了所有問題,使用者能夠上線了.
下面說一下我的整合方式
-
安裝 easemob-websdk 和strophe.js 包 我用安裝後是npm i easemob-websdk strophe.js --save
"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的話(付費),請加我微信
npm run dev 訪問 http://localhost:8080/#/chat?from_username=2&to_username=1&to_nickname=夢
demo效果圖如下
謝謝
相關推薦
VUE專案整合環信WebIM即時通訊以及所遇到的問題
功能背景: 之前和朋友一起做了一個wbe專案整合環信的即時通訊的功能,做的時候感嘆web端文件太少,而且npm包有一些坑,記錄下來寫了這篇部落格,之後不斷有人加我微信問我,怎麼整合.現在我再來重寫一下這篇部落格. 環信web整合功能介紹: 首先:在web端環信是不提供介
Android- 環信IM即時通訊(1)
********************************環境配置************************ 1.拷貝Demo包下的libs包下的baidumapapi_v2_1_1.jareasemobchat_2.1.3.jarlocSDK_3.3.jararmeabi資料夾 2.配置許可權
Android- 環信IM即時通訊_RESTAPI(2)
*****************************************************REST_API 簡介******************************************************* A)REST client:HTT
angular整合環信webIM
tin mage comm console ins webim span 圖片 ebs 此處有兩大坑: 1、下載easemob-websdk此npm包時,並沒有下載strophe.js、crypto-js、underscore這三個包,需要自己手動下載。
Android 使用easeui 3.0 整合環信即時通訊 我踩過的坑
0、關於註冊賬號就不用說了。 1、建立應用、獲取appkey 0、建立應用 1、填寫資訊 2、獲取appkey 2、整合 0、首先新建一個工程 1、這裡主要介紹使用easeui來整合環信的即時通訊功能,需要下載sdk
整合環信sdk步驟(即時通訊)
步驟:一,從環信官網註冊獲得appkey(沒有key 無法接入環信伺服器)二, 新增依賴 build.gradle(project)allprojects { repositories { google() jcenter()
Android 網易雲信整合(二)即時通訊Demo分析
因為公司需要接網易雲信的實時音視訊部分,下載了網易雲信的即時通訊的Demo,能滿足基本要求。下面是我自己畫的關於網易雲信Demo的一個流程圖,可以更方便快捷的理解,網易雲信demo的跳轉流程,額,其實我主要畫的是快速找到音視訊的跳轉。用xmind畫的有點太長,讓我截成了3張圖
Springboot專案與vue專案整合打包
我的環境 * JDK 1.8 * maven 3.6.0 * node環境 1.為什麼需要前後端專案開發時分離,部署時合併? 在一些公司,部署實施人員的技術無法和網際網路公司的運維團隊相比,由於各種不定的環境也無法做到自動構建,容器化部署等。因此在這種情況下儘量減少部署時的服務軟體需求,打出的包數量也儘量
ios-swift-整合環信遇到的坑
第一個 整合 EaseUI 時 EaseUI.h 檔案的 #import “UIImageView+WebCache.h” 會一直報錯,只要改成 #import<SDWebImage/UIImageView+WebCache.h> 再build就可以了,環信不用
android整合環信sdk出現app:transformClassesWithDexForDebug.” ---finished with non-zero exit value 2解決方法
android整合環信sdk出現app:transformClassesWithDexForDebug.” —finished with non-zero exit value 2解決方法 通常是架包衝突問題。 首先找到Gradle Scripts 然後找到 解決: impleme
vue專案之微信分享
1. npm install weixin-js-sdk --save 2. mian.js 引入 import wx from 'weixin-js-sdk' Vue.prototype.wx = wx 3.wxapi.js 封裝的公共js import
vue 專案中 如何動態監聽瀏覽器以及iOS手機微信自帶的返回按鈕的事件
vue搭建的頁面中,左上角的返回按鈕,我自己定義了返回的了路徑,可是當執行時,就會發現,蘋果手機的下方會有自帶的返回按鈕(安卓手機沒有),那麼這個按鈕的返回事件該如何設定呢? 一般情況下,微信自帶的返回按鈕都是返回上一個路徑,可是當我的頁面時使用者掃碼進入的,沒有上一條路徑
vue專案接入微信JSSDK的坑
date: 2018-12-13 15:23:09 用於記錄接入微信JS-SDK的坑,以後方便查詢 第一次接入公眾號微信支付、分享、定位等等的坑的時候,心裡是迷茫而又恐懼。因為,聽說坑特別多,後來發現自己的親身體驗到了這一點。 支付的坑 1、當前URL未註冊 問題: 微信公
vue專案使用微信公眾號支付總結
微信公眾號支付 1. 使用jssdk呼叫微信支付,具體檢視開發文件; 使用的vuex,在mutations中 wechatPay (state, data) { state.payObject = data console.log('微信支付開始請求')
最新安卓整合環信SDK3.5.1步驟詳解大白菜版本,記錄下
最近兩天一直在查詢整合環信SDK的部落格與文章,找來找去,最新的整合過程詳解也是環信官方SDK更新前的,大部分都是SDK3.4.1之前的,剛才測試環信SDK3.5.1測試成功後就來寫篇文章記錄下,在這裡先感謝下這位大神的部落格,附上連線,我是按照他寫的部落格一步一步測試成功的
最簡單的Vue專案整合UEditor方式,目前沒有之一
前言 上圖是UEditor的 百度指數 折線圖。雖然今天已經是 2018 年,且優秀的富文字編輯器層出不窮(包括移動端),但從圖中可以看出UEditor仍然維持著較高的搜尋熱度。而不少公司和個人也仍然在專案中使用UEditor。目前,UEditor官網
接入網易雲信IM即時通訊的微信小程式聊天室
出售微信小程式聊天室完整原始碼,也可定製開發微信小程式。掃碼加微信詳聊 微信小程式開發交流qq群 173683895 、 526474645 ; 接入流程: 初次接觸網易雲通訊IM服務,您可以通過以下產品介紹文件瞭解我們的產品
android studio如何快速整合環信EaseUI
最近專案中要使用即時通訊,為什麼會選環信呢,這是因為之前負責這一塊的那位兄弟跟老闆說這是免費的,老闆一聽免費的,好,就它了,後來這位兄弟跑路了,就讓我來接手了.....,無力吐槽,廢話不多說,我們開始吧。 下面我就來分享一下我在整合環信EaseUi中遇到的問題。 ps
Netty 入門與實戰:仿寫微信 IM 即時通訊系統
作為一個學 Java 的,如果沒有研究過 Netty,那麼你對 Java 語言的使用和理解僅僅停
android如何整合環信的聊天介面和訊息列表
使用拓展訊息實現聊天介面和訊息列表的頭像和暱稱的展示 上篇文章只是簡單的介紹怎麼整合環信,但是在自己的專案中涉及到聊天這一塊。在做android開發的時候,往往要考慮到怎麼展示使用者暱稱和頭像的問題。說明一點:我們這個專案的使用者頭像和暱稱是我們後臺返回給我們的。我們只需要