使用wesocket从 rabbitMQ获取实时数据
rabbitmq支持stomp组件,通过stomp组件和websocket可以从rabbitMQ获取实时数据。这里分享一个demo;
使用时需要引入的js ,用到了sock.js和stomp.js
<head> <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.js"></script> <script src="https://cdn.bootcss.com/sockjs-client/1.1.4/sockjs.min.js"></script> <script src="https://cdn.bootcss.com/stomp.js/2.3.3/stomp.min.js"></script> </head>
核心接入方法
/** * 获取实时数据 * @type {WebSocket} */
function connect(){
var ws = new WebSocket('ws://127.0.0.1:15674/ws'); var client = Stomp.over(ws); getStompInfo(ip,exchange,client) } /** * websocket 连接成功获取数据,对数据分析 */ function getStompInfo(ip,exchange,client) { // 定义连接成功回调函数 var on_connect = function (x) { //data.body是接收到的数据 client.subscribe("/exchange/"+exchange, function (r) { var value = r.body; alert(value); }); return }; // 定义错误时回调函数 var on_error = function (error) { alert("连接失败,请检查IP地址和交换机是否正确") return }; // 连接RabbitMQ client.connect('username', 'password', on_connect, on_error,'/'); }
数据接入成功