|
|
@@ -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");
|