RabbitMQ消息队列服务善于解决多系统、异构系统间的数据交换(消息通知/通讯)问题,并且可以订阅和发布,而随着HTML5诞生的WebSocket协议实现了浏览器与服务器的全双工通信,扩展了浏览器与服务端的通信功能,使服务端也能主动向客户端发送数据。
因 此,我们可以使用RabbitMQ的订阅发布技术,订阅后,当RabbitMQ端有新的数据就直接发布到指定的queue,订阅端接收到订阅队列的数据直 接通过WebSocket推送到前端,前端拿到数据之后实时解析上显,此过程相比传统的Rest接口定时请求,减去了数据入库、读库、客户端不断的请求服 务器和刷新页面,大大的减小了服务器的压力和减少了请求时间。该设计更适用于实时数据接收后直接推送到前端上显的一些不需要处理和统计的场景,如实传感器数据监控、数据采集展示
RabbitMQ安装不做讲解,网上照着做即可。
重点讲解如何使用已经发布的消息队列,并通过WebSocket进行实时消费消息。
方式①
前端代码:
后端代码:
方式②
前端代码:
后端不用写任何代码,前端直接从exchange或queue里订阅消息即可。
方式③
前端代码:
后端代码:
曾经将采集到的传感器数据通过echart实时展示出来,大致用法如下,有待优化
页面需要引入<script src="${ctxPath}/static/js/echarts.min.js"></script>