- 1
- var websocket = window.WebSocket || window.MozWebSocket;
- 2
- var isConnected = false;
- 3 4
- function doOpen() {
- 5 isConnected = true;
- 6
- if (deviceType == 'B') {
- 7 mapArea = 'mapB';
- 8 doLoginB(mapArea);
- 9
- }
- 10
- else {
- 11 mapArea = 'mapA';
- 12 doLoginA(mapArea);
- 13
- }
- 14 15
- }
- 16 17
- function doClose() {
- 18 showDiagMsg("infoField", "已经断开连接", "infoDialog");
- 19 isConnected = false;
- 20
- }
- 21 22
- function doError() {
- 23 showDiagMsg("infoField", "连接异常!", "infoDialog");
- 24 isConnected = false;
- 25 26
- }
- 27 28
- function doMessage(message) {
- 29
- var event = $.parseJSON(message.data);
- 30 doReciveEvent(event);
- 31
- }
- 32 33
- function doSend(message) {
- 34
- if (websocket != null) {
- 35 websocket.send(JSON.stringify(message));
- 36
- } else {
- 37 showDiagMsg("infoField", "您已经掉线,无法与服务器通信!", "infoDialog");
- 38
- }
- 39
- }
- 40 41 //初始话 WebSocket
- 42
- function initWebSocket(wcUrl) {
- 43
- if (window.WebSocket) {
- 44 websocket = new WebSocket(encodeURI(wcUrl));
- 45 websocket.onopen = doOpen;
- 46 websocket.onerror = doError;
- 47 websocket.onclose = doClose;
- 48 websocket.onmessage = doMessage;
- 49
- }
- 50
- else {
- 51 showDiagMsg("infoField", "您的设备不支持 webSocket!", "infoDialog");
- 52 53
- }
- 54
- };
- 55 56
- function doReciveEvent(event) {
- 57 //设备不存在,客户端断开连接
- 58
- if (event.eventType == 101) {
- 59 showDiagMsg("infoField", "设备不存在或设备号密码错!", "infoDialog");
- 60 websocket.close();
- 61
- }
- 62 //返回组设备及计算目标位置信息,更新地图
- 63
- else if (event.eventType == 104 || event.eventType == 103) {
- 64 clearGMapOverlays(mapB);
- 65 $.each(event.eventObjs,
- function(idx, item) {
- 66
- var deviceNm = item.deviceNm;
- 67 //google api
- 68 // var deviceLocale = new google.maps.LatLng(item.lag,item.lat);
- 69 //baidu api
- 70
- var deviceLocale = new BMap.Point(item.lng, item.lat);
- 71
- var newMarker;
- 72
- if (item.status == 'target') {
- 73 newMarker = addMarkToMap(mapB, deviceLocale, deviceNm, true);
- 74 //…以下代码省略
- 75
- }
- 76
- else {
- 77 newMarker = addMarkToMap(mapB, deviceLocale, deviceNm);
- 78
- }
- 79 markArray.push(newMarker);
- 80
- });
- 81 showDiagMsg("infoField", "有新报修设备或设备离线, 地图已更新!", "infoDialog");
- 82
- }
- 83 84
- }
来源: