美文网首页
Vue中集成环信

Vue中集成环信

作者: 北悸安凉_b2de | 来源:发表于2019-10-10 14:59 被阅读0次

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.新建webim.config.js文件

webim.config.js.png

在 webim.config.js 文件内进行以下配置:

const config = {
     xmppURL: 'im-api.easemob.com',            // xmpp Server地址,对于在console.easemob.com创建的appKey,固定为该值

     apiURL: 'http://a1.easemob.com',          // rest Server地址,对于在console.easemob.com创建的appkey,固定为该值

     appkey: 'easemob-demo#chatdemoui',        // App key

      https : false,                            // 是否使用https

      isHttpDNS: true,                         //防止DNS劫持从服务端获取XMPPUrl、restUrl

      isMultiLoginSessions: false,              // 是否开启多页面同步收消息,注意,需要先联系商务开通此功能

      isAutoLogin: true,                        // 自动出席,(如设置为false,则表示离线,无法收消息,需要在登录成功后手动调 用conn.setPresence()才可以收消息)

      isDebug: false,                           // 打开调试,会自动打印log,在控制台的console中查看log

      autoReconnectNumMax: 2,                   // 断线重连最大次数

      autoReconnectInterval: 2,                 // 断线重连时间间隔

      heartBeatWait: 4500,                       // 使用webrtc(视频聊天)时发送心跳包的时间间隔,单位ms

        delivery: true,                           // 是否发送已读回执
     }
export default config;

4.在main.js中引入webim.config.js

import webimconfig from './common/webim.config'

引入的websdk和webimconfig

5.在main.js中创建环信实例

// 环信
// 环信
let WebIM = window.WebIM = websdk;
WebIM.config = webimconfig;
// 环信实例
var conn = WebIM.conn = new WebIM.connection({
  appKey: WebIM.config.appkey,
  isHttpDNS: WebIM.config.isHttpDNS,
  isMultiLoginSessions: WebIM.config.isMultiLoginSessions,
  https: WebIM.config.https,
  url: WebIM.config.xmppURL,
  apiUrl: WebIM.config.apiURL,
  isAutoLogin: true,
  heartBeatWait: WebIM.config.heartBeatWait,
  autoReconnectNumMax: WebIM.config.autoReconnectNumMax,
  autoReconnectInterval: WebIM.config.autoReconnectInterval,
  isStropheLog: WebIM.config.isStropheLog,
  delivery: WebIM.config.delivery
})
// 账号密码登录配置
var optionsIm = {
  apiUrl: WebIM.config.apiURL,
  user: '', //换成自己申请的账号就行,密码也需要换  
  pwd: '',
  appKey: WebIM.config.appkey,
  success: function (re) {
    console.log('登陆成功')
  },
  error: function (err) {
    console.log(err)
  }
}
Vue.prototype.$WebIM = WebIM;
Vue.prototype.$imconn = conn
Vue.prototype.$imoption = optionsIm;

6.使用方法

    // 登录账号
    loginWebIM() {
      // 这儿是测试用的账号和密码
      this.$imoption.user = this.util.getUser().id;

      this.$imconn.open(this.$imoption);
      let _this = this;
      // 监听回调
      this.$imconn.listen({
        onOpened: function(message) {
          console.log("用户已上线");
        },
        onClosed: function(message) {
          console.log("用户下线");
          _this.$emit("isclose", true);
        },
        // 收到文本消息
        onTextMessage: function(message) {
          if (message.from == _this.accept) {
            _this.chatContent.push({
              replyImg: require("./../../src/assets/img/hom/herderservice.png"),
              replyContent: message.data
            });
            _this.keepbottom();
          }
        }
      });
    },
    //发送文本消息
    sendMessage(textMessage) {
      let val = textMessage.replace(/[\r\n]/g, "").replace(/[ ]/g, "");
      if (val != "") {
        var id = this.$imconn.getUniqueId();
        let to = this.accept;
        // 生成本地消息id
        var msg = new WebIM.message("txt", id);
        let _this = this; // 创建文本消息
        msg.set({
          msg: val, // 消息内
          to: to, // 接收消息对象(用户id)
          roomType: false,
          success: function(id, serverMsgId) {
            //  追加本地缓存处理
            console.log(msg);
            _this.chatContent.push({
              //把发送者的头像和文本数据push到数组中在页面上展示
              askImg: require("./../../src/assets/img/hom/logo_blue.png"),
              askContent: msg.value
            });
            _this.keepbottom();
          },
          fail: function(e) {
            console.log("消息发送失败");
          }
        });
        msg.body.chatType = "singleChat";
        this.$imconn.send(msg.body);
        this.textMessage = "";
      }
    },

相关文章

  • Vue中使用环信

    记录贴部分内容转载自:《VUE项目集成环信webIM随笔》 最新版本环信这个方法已经不适用了,详情跳转Vue中集成...

  • Vue中集成环信

    1. 通过 NPM 安装 Web SDK。 npm install easemob-websdk --save 2...

  • 环信

    iOS 集成环信(四) 群聊iOS 环信集成(五) 加载会话列表

  • iOS开发-集成环信即时通讯会话列表和聊天头像的设置

    环信SDK集成 请参考iOS开发-在现有项目中集成环信SDK及EaseUI或者参考官方文档 此操作只针对已集成环信...

  • 环信

    环信EaseUI 导入环信SDK和EaseUI使用cocoapods集成 集成视频:http://www.imge...

  • iOS 环信集成

    1、流程类: 最新环信V3.3.7单聊集成与使用 iOS环信3.0集成 (三)单聊集成有视频 iOS 环信3.0D...

  • 环信UI3.0的集成方法

    介绍一下把环信EaseUI集成到项目中的具体实现步骤。 1.集成UI之前要把环信的SDK集成到项目中,环信SDK有...

  • vue中集成环信webIm

    "strophe.js": "^1.3.1", "easemob-websdk": "^1.8.4", webIm...

  • iOS 环信SDK集成

    集成环信SDK:我觉得还是使用cocoaPod方便,几句命令行的事!我们集成环信 IM 2.0 Full: 集成U...

  • 【报错】npm install strophe.js

    最近用Vue框架在做环信web im 集成,npm install strophe.js居然报错了,百度了几种解决...

网友评论

      本文标题:Vue中集成环信

      本文链接:https://www.haomeiwen.com/subject/jbtapctx.html