| | |
| | | @Slf4j |
| | | @ServerEndpoint("/web/testWebSocket/{param}") |
| | | @Component |
| | | /** |
| | | * @Description: 用于测试的websocket |
| | | * @Param: |
| | | * @return: |
| | | * @Author: 下雨听风 |
| | | * @Date: 2020/9/30 |
| | | */ |
| | | public class BSTestWebsocketServer { |
| | | |
| | | public static DeviceService deviceService; |
| | |
| | | channel.basicConsume(queue, false, new DefaultConsumer(channel) { |
| | | @Override |
| | | public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException { |
| | | //对从MQ中取出的数据做转换,并且发送风速到客户端 |
| | | Map message = (Map) JSON.parse((String) JSON.parse(new String(body))); |
| | | sendWindInfo(message); |
| | | |
| | | //判断是否接收到客户端发送的mac,如果接收到则返回指定mac设备信息 |
| | | if(mac!=null&&(!mac.equals(0))) |
| | | sendDeviceInfo(message); |
| | | |
| | | //手动确认 |
| | | channel.basicAck(envelope.getDeliveryTag(), false); |
| | | |
| | | //判断socket是否已经断开 |
| | | if (!webSocketMap.containsKey(accountId)) { |
| | | RabbitMQUtils.closeConnectionChannel(connection, channel); |
| | |
| | | } |
| | | } |
| | | |
| | | //发送风向标数据 |
| | | /** |
| | | * @Description: 从客户端连接到socket就一直开始发送风向数据 |
| | | * @Param: [param] |
| | | * @return: void |
| | | * @Author: 陈凯裕 |
| | | * @Date: 2020/9/30 |
| | | */ |
| | | private void sendWindInfo(Map<String, Object> param) { |
| | | try { |
| | | Map<String, Object> map = new HashMap<>(); |
| | |
| | | } |
| | | } |
| | | |
| | | //根据mac发送device数据 |
| | | /** |
| | | * @Description: 接收前端mac以及accountid,传送前端指定mac号的设备信息 |
| | | * @Param: [param] |
| | | * @return: void |
| | | * @Author: 陈凯裕 |
| | | * @Date: 2020/9/30 |
| | | */ |
| | | private void sendDeviceInfo(Map<String, Object> param) { |
| | | String deviceMac = (String) param.get("mac"); |
| | | if (mac.equals(deviceMac)) { |
| | |
| | | }); |
| | | String mac = (String) param.get("mac"); |
| | | map.put("mac", mac); |
| | | map.put("flag",1); |
| | | sendMessage(JSON.toJSONString(map)); |
| | | } catch (IOException e) { |
| | | log.error("根据mac发送设备数据异常"); |