瀏覽代碼

心连心异常,签出,重连自动签入,定时存token

miaofuhao 6 年之前
父節點
當前提交
0188b11361
共有 3 個文件被更改,包括 108 次插入5 次删除
  1. 9 0
      CallCenterWeb.UI/index.html
  2. 3 0
      CallCenterWeb.UI/js/index.js
  3. 96 5
      CallCenterWeb.UI/js/main.js

+ 9 - 0
CallCenterWeb.UI/index.html

@@ -1043,6 +1043,15 @@
1043 1043
 					<ul>
1044 1044
 						<li class="top13" style="width: 100%;"></li>
1045 1045
 					</ul>
1046
+					<span class="fr">Copyright © 华谊科技 All Rights Reserved</span>
1047
+	                <ul class="zts" style="display:none;">
1048
+	                    <li>话机状态: </li>
1049
+	                    <li class="quan fwzt lx br"> </li>
1050
+	                    <li>坐席状态: </li>
1051
+	                    <li class="quan zxzt lx br"></li>
1052
+	                    <li><span class="hwzt" style="color:red;"></span></li>
1053
+	                    <li><span class="expire" style="color:red;"></span></li>
1054
+	                </ul>
1046 1055
 					<!--<span class="fr">Copyright © 华谊科技 All Rights Reserved</span>-->
1047 1056
 
1048 1057
 				</div>

+ 3 - 0
CallCenterWeb.UI/js/index.js

@@ -729,6 +729,9 @@ function getTopMsgs() {
729 729
 		token: $.cookie("token")
730 730
 	}, function(result) {
731 731
 		if(result.state.toLowerCase() === 'success'){
732
+			$.cookie("token", $.cookie("token"), {
733
+				expires: 7
734
+			});
732 735
 			$('#top_notices_lists').empty();
733 736
 			result = result.data;
734 737
 			var str = '';

+ 96 - 5
CallCenterWeb.UI/js/main.js

@@ -5,8 +5,13 @@ var obj = {};
5 5
 var directType;
6 6
 var sendType;
7 7
 var mesCont;
8
+var eorrorConnect;
8 9
 var cls = 0;
9 10
 var lasttime = new Date().getTime();
11
+var errorState;
12
+var reconnecTion;
13
+var recon;
14
+var loginOr;
10 15
 //创建scoket连接
11 16
 function createWebSocket() {
12 17
 	try {
@@ -23,10 +28,8 @@ function Connect() {
23 28
 		ws = new WebSocket("ws://" + huayi.config.socket_ip + ":" + huayi.config.socket_port);
24 29
 		ws.onopen = function() {
25 30
 			console.log(new Date() + "    " + "建立连接");
26
-
27 31
 			//心跳检测重置
28 32
 			heartCheck.reset().start();
29
-
30 33
 			cls = 0;
31 34
 			$(".Login").addClass("active");
32 35
 			//自动签入
@@ -34,6 +37,20 @@ function Connect() {
34 37
 			//obj.Type = "Login";
35 38
 			//obj.AgentType = "0";
36 39
 			//Send(); /*2018-05-19zhangshaungnan注释*/
40
+			if (errorState) {
41
+				//自动签入
42
+				lasttime = new Date().getTime();
43
+				obj.Type = "Login";
44
+				obj.AgentType = "0";
45
+				Send();
46
+				clearInterval(timer);
47
+				//loginOr=false;
48
+				errorState=false;
49
+			}else{
50
+				//签入
51
+				Send();
52
+				
53
+			}
37 54
 		};
38 55
 		//接收到消息的回调方法
39 56
 		ws.onmessage = function(evt) {
@@ -52,6 +69,12 @@ function Connect() {
52 69
 				var rlt = data.Result;
53 70
 				if(rlt == true) {
54 71
 					var type = data.Type;
72
+					if (eorrorConnect) {
73
+						LoginBack();
74
+						obj.Type = "Login";
75
+						Send();
76
+						eorrorConnect=false;
77
+					}
55 78
 					switch(type.toLowerCase()) {
56 79
 						//case "heart": HeartBack(); break;//心跳
57 80
 						case "login":
@@ -113,9 +136,15 @@ function Connect() {
113 136
 					}
114 137
 				} else {
115 138
 					if(rlt == false) {
116
-						//layer.confirm('操作失败!', {
117
-						//    btn: ['确定'] 
118
-						//});
139
+						if (data.Type=="AcdConnectNotify") {
140
+							//LogoutBack();
141
+							$(".hwzt").text('连接异常!');
142
+							setTimeout(function () {
143
+//								签入
144
+								obj.Type = "login";
145
+								Send();
146
+					        }, 5000);
147
+						}
119 148
 						$(".hwzt").text('操作失败!');
120 149
 					} else {
121 150
 						$(".hwzt").text(rlt);
@@ -190,9 +219,69 @@ function debuggerLog(){
190 219
 		}
191 220
 	})
192 221
 }
222
+
223
+//异常重连
224
+function errorFun(){
225
+	clearInterval(timer);
226
+	var errorNum=0
227
+	timer = setInterval(function() {
228
+		errorNum++;
229
+		if (errorNum>2) {
230
+			//$("#top-search li i").removeClass("active");
231
+			$(".hwzt").text('连接异常!');
232
+		}else{
233
+			LogoutBack();
234
+		}
235
+		reconnect();
236
+		$(".hwzt").text('连接异常!');
237
+	}, 15000);
238
+}
239
+noLine();
240
+clearInterval(recon);
241
+recon = setInterval(function () { 
242
+	if(loginOr){
243
+		noLine();
244
+		setTimeout(function () {
245
+			lineState();
246
+    	}, 2000);
247
+	}
248
+}, 1000*10);
249
+function lineState(){
250
+	if (reconnecTion) {
251
+		reconnecTion=false;
252
+	}else{
253
+		errorState=true;
254
+		errorFun();
255
+		var numEorr=0;
256
+		numEorr++;
257
+		if (numEorr>2) {
258
+			$("#top-search li i").removeClass("active");
259
+		}
260
+		LogoutBack();
261
+		$(".hwzt").text('网络异常!');
262
+	}
263
+}
264
+function noLine(){
265
+	$.ajax({
266
+		type: "get",
267
+		url: huayi.config.callcenter_url + 'UserAccount/GetNowUser',
268
+		async: true,
269
+		dataType: 'json',
270
+		data: {
271
+			"token": $.cookie("token")
272
+		},
273
+		success: function(data) {
274
+			reconnecTion = data.data.user.F_UserCode;
275
+		}
276
+	});
277
+}
193 278
 //发送
194 279
 function Send() {
195 280
 	if(ws.readyState != ws.OPEN) {
281
+		errorState=true;
282
+		LogoutBack();
283
+		errorFun();
284
+		$(".hwzt").text('连接异常!');
196 285
 		reconnect();
197 286
 	}
198 287
 	if(ws.readyState == ws.OPEN) {
@@ -238,6 +327,7 @@ var heartCheck = {
238 327
 
239 328
 //签入
240 329
 function LoginBack() {
330
+	loginOr=true;
241 331
 	$("#top-search li i").removeClass("active");
242 332
 	$(".Logout").addClass("active");
243 333
 	$(".SayBusy").addClass("active");
@@ -249,6 +339,7 @@ function LoginBack() {
249 339
 }
250 340
 //签出
251 341
 function LogoutBack() {
342
+	loginOr=false;
252 343
 	$("#top-search li i").removeClass("active");
253 344
 	$(".Login").addClass("active");
254 345
 	$(".zxzt").removeClass("bl").addClass("br");