kaiyu
2020-09-30 37e2672f7c9d59621672444b03d3713580dc1364
src/main/java/com/moral/webSocketServer/BSTestWebsocketServer.java
@@ -106,6 +106,7 @@
                channel.queueBind(queue, exchange, routingKey);
            }
            //消费消息,手动确认模式。
            channel.basicQos(1);//每次只消费一条数据
            channel.basicConsume(queue, false, new DefaultConsumer(channel) {
@@ -117,7 +118,7 @@
                    
                    //判断是否接收到客户端发送的mac,如果接收到则返回指定mac设备信息
                    if(mac!=null&&(!mac.equals(0)))
                        sendDeviceInfo(message);
                        sendDeviceInfo(message,deviceList);
                    
                    //手动确认
                    channel.basicAck(envelope.getDeliveryTag(), false);
@@ -145,7 +146,6 @@
    @OnMessage
    public void onMessage(String message, Session session) {
        if (!ObjectUtils.isEmpty(message)) {
            System.out.println(message);
            Map<String, Object> map = JSON.parseObject(message);
            this.mac = (String) map.get("mac");
        }
@@ -194,7 +194,7 @@
            * @Author: 陈凯裕
            * @Date: 2020/9/30
            */ 
    private void sendDeviceInfo(Map<String, Object> param) {
    private void sendDeviceInfo(Map<String, Object> param,List<Device> deviceList) {
        String deviceMac = (String) param.get("mac");
        if (mac.equals(deviceMac)) {
            try {
@@ -209,6 +209,13 @@
                String mac = (String) param.get("mac");
                map.put("mac", mac);
                map.put("flag",1);
                for (Device device : deviceList) {
                    if(mac.equals(device.getMac())){
                        map.put("名称",device.getName());
                        map.put("地址",device.getAddress());
                        break;
                    }
                }
                sendMessage(JSON.toJSONString(map));
            } catch (IOException e) {
                log.error("根据mac发送设备数据异常");