src/main/java/com/moral/webSocketServer/WebSocketServer.java | ●●●●● patch | view | raw | blame | history | |
src/main/webapp/js/newmoralmap.js | ●●●●● patch | view | raw | blame | history | |
src/main/webapp/view/newmap.jsp | ●●●●● patch | view | raw | blame | history |
src/main/java/com/moral/webSocketServer/WebSocketServer.java
@@ -17,12 +17,18 @@ import com.moral.common.util.ParameterUtils; import com.moral.entity.Device; import com.moral.service.DeviceService; import com.moral.util.RabbitMQUtils; import com.rabbitmq.client.AMQP; import com.rabbitmq.client.Channel; import com.rabbitmq.client.Connection; import com.rabbitmq.client.ConnectionFactory; import com.rabbitmq.client.Consumer; import com.rabbitmq.client.DefaultConsumer; import com.rabbitmq.client.Envelope; import com.rabbitmq.client.QueueingConsumer; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; /** @@ -79,15 +85,16 @@ try { //打开连接和创建频道,与发送端一样 ConnectionFactory factory = new ConnectionFactory(); /*ConnectionFactory factory = new ConnectionFactory(); //设置MabbitMQ所在主机ip或者主机名 factory.setHost("47.96.15.25"); factory.setPort(5672); factory.setUsername("guest"); factory.setPassword("guest_pass"); factory.setPassword("guest_pass");*/ //Connection connection = RabbitMQUtils.getConnection(); String routingKey; connection = factory.newConnection(); channel = connection.createChannel(); this.connection = RabbitMQUtils.getConnection(); channel = this.connection.createChannel(); //声明队列,主要为了防止消息接收者先运行此程序,队列还不存在时创建队列。 channel.queueDeclare(QUEUE_NAME, false, false, true, null); for (Device d : deviceList) { @@ -95,7 +102,8 @@ channel.queueBind(QUEUE_NAME, "screens_data", routingKey); } //创建队列消费者 QueueingConsumer consumer = new QueueingConsumer(channel); /*java废弃方法*/ /*QueueingConsumer consumer = new QueueingConsumer(channel); //指定消费队列 channel.basicConsume(QUEUE_NAME, true, consumer); @@ -104,7 +112,15 @@ QueueingConsumer.Delivery delivery = consumer.nextDelivery(); String message = new String(delivery.getBody()); sendMessage(message); }*/ channel.basicConsume(QUEUE_NAME, false, new DefaultConsumer(channel){ @Override public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException { String msg = new String(body, "utf-8"); sendMessage(msg); channel.basicAck(envelope.getDeliveryTag(), false); } }); } catch (Exception e) { log.error(e.getMessage()); } @@ -118,7 +134,6 @@ /**从安全Set中 移除当前连接对象*/ webSocketSet.remove(this); try { //channel.queueDelete("deviceInfo_" + accountId); connection.close(); } catch (IOException e) { log.error(e.getMessage()); src/main/webapp/js/newmoralmap.js
@@ -399,7 +399,7 @@ var timer = setTimeout(function () { baiduMap.closeInfoWindow.apply(baiduMap, arguments); moralMap["_closeInfoWinTimer"] = null; }, 1200); }, 500); moralMap["_closeInfoWinTimer"] = timer; } moralMap.clearOverlays = function () { @@ -948,24 +948,14 @@ } var mouseOverHandle = option['mouseover']; moralMarker.addEventListener("mouseover", function () { var obj = {}; obj['methodName'] = 'deliverMac'; obj['mac'] = option['mac']; var objStr = JSON.stringify(obj); if (!!window['external'] && !!window['external']['callWin']) { window['external'].callWin(objStr); } else { alert(objStr); } moralMap.showSensors = function (jsonData) { /* var deviceSensors = jsonData; var deviceSensors = jsonData; var mac = deviceSensors["mac"]; if (mac == option['mac']) {*/ if (!jsonData.hasOwnProperty('mac')) { infoWindow.setContent(""); infoWindow.redraw(); } else { if (mac == option['mac']) { var adressOutHtml = '<div style="min-height:20px;overflow:auto;max-height:480px;font-size: 12px;" onmouseover="moralMap.clearCloseInfoWindow()" onmouseout="moralMap.closeInfoWindow()">'; var y, m, d, h, mm, s; var date = new Date($.now()); @@ -1000,6 +990,7 @@ infoWindow.redraw(); } } } // } /* if (!$.isEmptyObject(sensorInfo)) { moralMap.openInfoWindow(infoWindow, this._point); //开启信息窗口 @@ -1008,14 +999,6 @@ }); moralMarker.addEventListener("mouseout", function () { var obj = {}; obj['methodName'] = 'stopDeliverMac'; var objStr = JSON.stringify(obj); if (!!window['external'] && !!window['external']['callWin']) { window['external'].callWin(objStr); } else { alert(objStr); } moralMap.closeInfoWindow(); }); src/main/webapp/view/newmap.jsp
@@ -710,8 +710,9 @@ moralMap.showSensors(JSON.parse(JSON.parse(msg.data))); }*/ if ($("#close").html() == "CloseMq") { ws.close(); ws.close(JSON.parse(msg.data)); } moralMap.showSensors(JSON.parse(JSON.parse(msg.data))); }; //关闭事件 @@ -722,7 +723,6 @@ ws.onerror = function () { $("#close").html("websocket关闭错误"); }; } })(jQuery); @@ -839,9 +839,6 @@ } else if ("RefreshState" == methodName) { var states = jsonData.states; moralMap.refreshState(states); } else if ("DeliverSensors" == methodName) { $("#close").html(methodName); moralMap.showSensors(jsonData); } else if ("CloseMq" == methodName) { $("#close").html(methodName); }