官方jeecgboot开源版本没有聊天功能,网上也比较少,所以考虑集成聊天功能。
目前网上比较好的开源聊天功能是V-IM,同时这个采用比较好的t-io高性能网络编程框架,其炸裂的性能、超长续航的稳定性、极简易用的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(); } }); },