Browse Source

即时通信第二版修改

shilin 4 years ago
parent
commit
8f58b03231

+ 2 - 2
common/store.js

@@ -8,8 +8,8 @@ const store = new Vuex.Store({
 		wholeSituationBackStageIp:'117.78.18.24',//117.78.18.24
 		wholeSituationBackStagePort:'9988',
 		
-		GlobalLocalIp:'192.168.0.91',//192.168.1.102
-		GlobalLocalPort:'4397',
+		GlobalLocalIp:'117.78.18.24',//192.168.1.102
+		GlobalLocalPort:'9987',
 		
 		windpowerstationNameToId:{},
 		

+ 159 - 21
components/mine/addressBook/InitializeThe.vue

@@ -28,6 +28,12 @@
 
 		created() {
 			this.getUserList();
+			this.onlineMonitor();
+			let _this = this;
+			setInterval(function() {
+			        _this.onlineUserMap();
+			       }, 6000);//如果是首页的onload调用时需要延时一下,二级页面无需延时,可直接获取
+			
 		},
 		computed: {
 			sisStageIp: function() {
@@ -51,13 +57,13 @@
 			getUserList() {
 
 				let im_show =uni.getStorageSync('im_show');
-				if (im_show != "1") {
+				if (im_show == "1") {
 					this.lastUserName = uni.getStorageSync('gyeeusername');
 					this.userid = uni.getStorageSync('userid');
 
 					let _this = this;
 					uni.request({
-						url: 'http://' + this.sisStageIp + ':' + this.sisStagePort + '/GyeeuserController/selectUserList',
+						url: 'http://' + _this.sisStageIp + ':' + _this.sisStagePort + '/GyeeuserController/selectUserList',
 						data: {},
 						method: 'GET',
 						success: function(res) {
@@ -78,14 +84,15 @@
 									let url = "https://" + _this.backStageIp + ":" + _this.backStagePort + "/websocket/usercontroller/view?send=" +
 										_this.userid + "&receive=" + res.data[i].id + "&sendname=" + _this.lastUserName + "&receivename=" + res.data[
 											i].nickname;
+											
 									webView.loadURL(url)
 									var currentWebview = page.$getAppWebview(); //此对象相当于html5plus里的plus.webview.currentWebview()。在uni-app里vue页面直接使用plus.webview.currentWebview()无效,非v3编译模式使用this.$mp.page.$getAppWebview()
 									currentWebview.append(webView); //一定要append到当前的页面里!!!才能跟随当前页面一起做动画,一起关闭
 									//wv.setStyle({top:70,height:height});
 									
-									 setTimeout(function() {
+									  setTimeout(function() {
 									          
-									        }, 1000);//如果是首页的onload调用时需要延时一下,二级页面无需延时,可直接获取
+									         }, 1000);//如果是首页的onload调用时需要延时一下,二级页面无需延时,可直接获取
 									webView.hide();
 
 									wv.push(webView)
@@ -101,7 +108,7 @@
 						},
 					});
 					
-					 uni.setStorageSync('im_show','1');
+					 uni.setStorageSync('im_show','0');
 					
 				}else
 				{
@@ -113,6 +120,7 @@
 						
 						let webView = wv[i];
 						
+						
 						currentWebview.append(webView); //一定要append到当前的页面里!!!才能跟随当前页面一起做动画,一起关闭
 						
 					}
@@ -120,6 +128,152 @@
 
 
 			},
+			async onlineUserMap() {
+
+
+					let _this = this;
+					let url='https://' + _this.backStageIp + ':' + _this.backStagePort + '/websocket/usercontroller/onlineUserList';
+					uni.request({
+						url: url,
+						data: {},
+						method: 'GET',
+						sslVerify: false,
+						success: function(res) {
+			
+						_this.userid = uni.getStorageSync('userid');
+						
+
+						
+						let onlineList=[];
+						
+							for (var i = 0; i < res.data.length; i++) {
+								
+								if(res.data[i].id==_this.userid)
+								{
+									onlineList=res.data[i].userlist;
+									break;
+								}
+							}
+						
+							var pages = getCurrentPages();
+							var page = pages[pages.length - 1];
+							var currentWebview = page.$getAppWebview(); //此对象相当于html5plus里的plus.webview.currentWebview()。在uni-app里vue页面直接使用plus.webview.currentWebview()无效,非v3编译模式使用this.$mp.page.$getAppWebview()
+							
+							for (var i = 0; i < wv.length; i++) {
+								
+								let status=true;
+								
+								if(onlineList.length==0)
+								{
+									status=false;
+								}else{
+									for (var j = 0; j < onlineList.length; j++) {
+										
+										if (wv[i].id == "webview" + onlineList[j]) {
+											status=false;
+											break;
+										}
+									}
+								}
+					
+								
+								if(status)
+								{
+									let url=wv[i].getURL();
+									wv[i].loadURL(url);
+								}
+								
+							}
+							
+
+						},
+						fail: function(res) {
+							_this.tips = '网络错误,小程序端请检查合法域名';
+						},
+					});
+					
+					 uni.setStorageSync('im_show','0');
+					
+			},
+			async onlineMonitor() {
+				
+				// let im_monitor =uni.getStorageSync('im_monitor');
+				// if (im_monitor == "1") {
+				
+				// 	let _this = this;
+				// 	// 创建一个this.socketTask对象【发送、接收、关闭socket都由这个对象操作】
+				// 	this.socketTask_getUserList = uni.connectSocket({
+				// 		// 【非常重要】必须确保你的服务器是成功的,如果是手机测试千万别使用ws://127.0.0.1:9099【特别容易犯的错误】
+				// 		url: 'ws://' + this.sisStageIp + ':' + this.sisStagePort + '/websocket/pageNumber_4/functionNumber_4/all',
+				// 		success(data) {
+				// 			console.log(data);
+				// 		}
+				// 	});
+				// 	// 消息的发送和接收必须在正常连接打开中,才能发送或接收【否则会失败】
+				// 	this.socketTask_getUserList.onOpen(res => {
+				// 		console.log('WebSocket连接正常打开中...!');
+				// 		this.is_open_socket = true;
+								
+				// 		// 注:只有连接正常打开中 ,才能正常收到消息
+				// 		this.socketTask_getUserList.onMessage(res => {
+				// 			/* _this.windpowerstationdetail.getUserList = JSON.parse(res.data); */
+							
+				// 			_this.userid = uni.getStorageSync('userid');
+							
+				// 			let obj=JSON.parse(res.data);
+							
+				// 			let onlineList=[];
+							
+				// 				for (var i = 0; i < obj.length; i++) {
+									
+				// 					if(obj[i].id==_this.userid)
+				// 					{
+				// 						onlineList=obj[i].userlist;
+				// 						break;
+				// 					}
+				// 				}
+							
+				// 				var pages = getCurrentPages();
+				// 				var page = pages[pages.length - 1];
+				// 				var currentWebview = page.$getAppWebview(); //此对象相当于html5plus里的plus.webview.currentWebview()。在uni-app里vue页面直接使用plus.webview.currentWebview()无效,非v3编译模式使用this.$mp.page.$getAppWebview()
+								
+				// 				for (var i = 0; i < wv.length; i++) {
+									
+				// 					let status=true;
+									
+				// 					if(onlineList.length==0)
+				// 					{
+				// 						status=false;
+				// 					}else{
+				// 						for (var j = 0; j < onlineList.length; j++) {
+											
+				// 							if (wv[i].id == "webview" + onlineList[j]) {
+				// 								status=false;
+				// 								break;
+				// 							}
+				// 						}
+				// 					}
+						
+									
+				// 					if(status)
+				// 					{
+				// 						let url=wv[i].getURL();
+				// 						wv[i].loadURL(url);
+				// 					}
+									
+				// 				}
+								
+							
+				// 			//_this.userList = JSON.parse(res.data);
+							
+				// 		});
+				// 	});
+					
+				// 	uni.setStorageSync('im_monitor',0);
+					
+				// }
+				
+			},
 			childMethod(id, bool, state) {
 				console.log(id);
 				this.identify = id;
@@ -130,22 +284,6 @@
 					if (wv[i].id == "webview" + id) {
 
 						webview = wv[i];
-						let url = webview.getURL();
-						if (bool != null) {
-							if (bool == 1) {
-
-								if (url.indexOf("/view?") < 0) {
-									url = url.replace("/viewoffline?", "/view?");
-									webview.loadURL(url);
-								}
-							} else {
-								if (url.indexOf("/viewoffline?") < 0) {
-									url = url.replace("/view?", "/viewoffline?");
-									webview.loadURL(url);
-								}
-							}
-						}
-
 
 						if (state == 1) {
 

+ 2 - 2
components/mine/addressBook/addressBook.vue

@@ -33,7 +33,7 @@
 
 		<!-- 返回组件 -->
 		 <view @click="changeState()">    
-		<cu-custom bgColor="bg-gradual-sisBlack" :isBack="true"   v-show="but2" >
+		<cu-custom bgColor="bg-gradual-sisBlack" :isBack="false"   v-show="but2" >
 			<block slot="backText">
 				<view style="height: 80rpx;line-height: 80rpx;color: silver;">返回</view>
 			</block>
@@ -260,7 +260,7 @@
 		},
 		created: function() {
 			
-			this.getUserList();
+			//this.getUserList();
 			this.drawerList = uni.getStorageSync('leftlist5');
 			
 			/* this.pinyin(); */

+ 3 - 1
pages/index/Index.vue

@@ -580,7 +580,9 @@ export default {
 		};
 	},
 	created: function() {
-		uni.setStorageSync('im_show','0');
+		uni.setStorageSync('im_show','1');
+		uni.setStorageSync('im_monitor','1');
+		
 		this.play();
 		this.timeNow();
 		this.$nextTick(function() {

+ 1 - 1
pages/mine/Mine.vue

@@ -52,7 +52,7 @@
 			}
 		},
 		created: function() {
-		 uni.setStorageSync('im_show','1');
+		 //uni.setStorageSync('im_show','1');
 		},
 		onShow() {