webSocketHandle.js
2.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
/** web socket */
!function(){
var reqCodeMap = {0xA1: '请求恢复运营', 0xA2: '申请调档', 0xA3: '出场请求', 0xA5: '进场请求', 0xA7: '加油请求', 0x50: '车辆故障', 0x70: '路阻报告', 0x60: '事故报告', 0x11: '扣证纠纷', 0x12 : '报警'};
//将当前用户和线路绑定到后台
setTimeout(function(){
$.get('/realSchedule/registerLine', {lineCodes: lineCodes}
,function(rs){
if(rs == 0){
console.log('注册线路成功!');
initWebSocket();
}
});
}, 500);
//初始化webSocket
var msgSock;
var initWebSocket = function(){
msgSock = new SockJS('/sockjs/realcontrol');
msgSock.onopen = function(e) {
console.log('webSocket[realcontrol] onopen');
};
//接收消息
msgSock.onmessage = function(e) {
try{
var jsonMsg = $.parseJSON(e.data);
msgHandle[jsonMsg.fn](jsonMsg);
}catch(e){
console.log(e);
}
};
};
var msgHandle = {
//驾驶员80上报处理
report80: function(msg){
msg.dateStr = moment(msg.timestamp).format('HH:mm');
msg.text = reqCodeMap[msg.data.requestCode];
appendLogItem('console_80_temp', msg, msg.data.lineId);
},
//车辆发出
faChe: function(msg){
//刷新数据
_alone.refreshSchedule(msg.t);
//信使
appendLogItem('console_fache_temp', msg, msg.t.xlBm);
},
//到达终点
zhongDian: function(msg){
//刷新数据
_alone.refreshSchedule(msg.t);
_alone.refreshSchedule(msg.nt);
//信使
appendLogItem('console_zhongdian_temp', msg, msg.t.xlBm);
},
//指令状态改变
directive: function(msg){
var sch = msg.t;
if(!sch)return;
var tab = '#tab_line_' + sch.xlBm;
//找到行
var $tr = $('tr[data-id='+sch.id+']', tab);
//更新指令状态
var clazz = '';
switch (sch.directiveState) {
case 60:
clazz = 'tl-xxfc';
break;
case 100:
clazz = 'tl-xxsd';
break;
case 200:
clazz = 'tl-xxrd';
break;
case 0:
//发送调度指令失败
break;
}
$tr.find('td[data-name=clZbh]').attr('class', clazz);
}
};
function appendLogItem(tempId, json, lineCode){
var htmlStr = template(tempId, json);
var logWrap = $('.console-log .log-item-list', '#tab_line_' + lineCode);
logWrap.prepend(htmlStr);
}
}();