项目背景
环信webim 官方没有vue版本的,自己就根据sdk重写了个vue版本的,只实现了基础的 登录 群组功能,其他的可以根据需要参考官方文档,添加相应的功能。
环信webim SDK相关文档:
http://docs-im.easemob.com/im/web/intro/start
先使用vue-cli新建一个typescript项目
集成webim
安装环信sdk和strophe.js 这两个是必须的
cnpm install easemob-websdk --save
cnpm install strophe.js --save
cnpm install crypto-js --save
cnpm install underscore --save
添加组件
在components中添加 WebIM.ts
// 引入Strophe方法 var Strophejs = require('strophe.js'); var Strophe = (Strophejs as any).Strophe; // 给Strophe.Connection 添加方法 Strophe.Connection.prototype.setJid = (jid: any) => { Strophe.Connection.jid = jid; Strophe.Connection.authzid = Strophe.getBareJidFromJid(Strophe.Connection.jid); Strophe.Connection.authcid = Strophe.getNodeFromJid(Strophe.Connection.jid); } Strophe.Connection.prototype.getJid = () => { return Strophe.Connection.jid; } (window as any).Strophe = Strophe; var WebIM = require('easemob-websdk') as any; //配置文件参考环信demo var config = { xmppURL: 'im-api.easemob.com', apiURL: (location.protocol === 'https:' ? 'https:' : 'http:') + '//a1.easemob.com', appkey: 'easemob-demo#chatdemoui', https: false, isMultiLoginSessions: true, isAutoLogin: true, isWindowSDK: false, isSandBox: false, isDebug: false, autoReconnectNumMax: 2, autoReconnectInterval: 2, // isWebRTC: (/Firefox/.test(navigator.userAgent) || /WebKit/.test(navigator.userAgent)) && /^https\:$/.test(window.location.protocol), heartBeatWait: 4500, isHttpDNS: false, msgStatus: true, delivery: true, read: true, saveLocal: false, encrypt: { type: 'none' } } //初始化配置 WebIM.config = config var conn: any = () => { return new WebIM.connection({ isMultiLoginSessions: WebIM.config.isMultiLoginSessions, https: typeof WebIM.config.https === 'boolean' ? WebIM.config.https : location.protocol === 'https:', url: WebIM.config.xmppURL, isAutoLogin: true, heartBeatWait: WebIM.config.heartBeatWait, autoReconnectNumMax: WebIM.config.autoReconnectNumMax, autoReconnectInterval: WebIM.config.autoReconnectInterval, apiUrl: WebIM.config.apiURL }); } export interface CurrentUserInfo { access_token: string, expires_in: number, user: { activated: string, nickname: string, type: string, username: string, uuid: string } } export default { conn, WebIM };
运行效果
git仓库地址:
https://github.com/sandsli/huanxin-vue
查看更多关于vue-cli3.0 Typescript 项目集成环信WebIM 群组聊天的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did223450