官方jeecgboot开源版本没有聊天功能,网上也比较少,所以考虑集成聊天功能。

       目前网上比较好的开源聊天功能是V-IM,同时这个采用比较好的高性能网络编程框架,其炸裂的性能、超长续航的稳定性、极简易用的API、丰富够用的内置功能,据说能达到百万级的,具体地址如下:

 

         所以决定集成这个开源聊天项目,先放上集成后的聊天窗口。

 1、前端部分

 主要是窗口控制 webControl与utils部分,views部分如下

 

 因为集成到jeecgboot里,所以登录部分去掉,采用本身的登录,index部分进行改造如下:

主要是登录后的相关操作移植过来。

       

created: function() {
    let self = this;
    let requestApi = RequestUtils;
    
    const token = Vue.ls.get(ACCESS_TOKEN);
    StoreUtils.setToken(token); //设置token
    
    localStorage.setItem("host", window._CONFIG['hostAddress'] ); //设置主机地址
    console.log("localStorage host=",localStorage.getItem("host"));
    
    requestApi.request(conf.getInitUrl(), new FormData()).then(json => {
          console.log("json=",json);
          //个人信息
          self.$store.commit("setImUser", json.me);
          //好友
          self.$store.commit("setUserFriendList", json.friends);
          //群
          self.$store.commit("setChatGroupList", json.groups);    
          //把群组封装到map中
          let chatMap = new Map();
          json.groups.forEach(group => {
            chatMap.set(group.id, group);
          });
          self.$store.commit("setChatMap", chatMap);
          
          self.imuser = self.$store.state.im.imuser;
          
          console.log("self.$store.state=",self.$store.state);
          
          console.log("self.imuser=",self.imuser);
          
          RequestUtils.webSocketOperation(self);
          
          // 跳转到index 页面
          self.$router.push({
            path: "/im/index/chatBox",
            params: {}
          });
        })
        .catch(function(error) {
          console.error(error);
          self.showErr = true;
          if (ErrorType.NET_ERROR === error.toString()) {
            self.err = "服务通讯失败,请检查服务设置";
          } else {
            self.err = error.toString();
          }
        });

    
  },