rabbitmq消息發送與接收&stomp通道測試


發現問題:
安裝好Erlang、rabbitmq客戶端后,啟用插件rabbitmq-plugins enable rabbitmq_web_stomp后無法訪問http://localhost:15674/stomp/info,在百度了許久后還是無法解決這個訪問的問題,一度以為自己的stomp通道沒有建立成功

 

 

 

進入到RabbitMQ安裝目錄下的sbin文件夾內

 

Shift加右鍵進入命令行

 

執行命令

rabbitmq-plugins enable rabbitmq_web_stomp
rabbitmq-plugins enable rabbitmq_web_stomp_examples
成功后重啟RabbitMQ

解決辦法:

后來,仔細研究了一下,通過stomp.html來訪問獲取隊列中的消息,測試通訊功能,附上代碼

<!DOCTYPE HTML>
<html>
<head>
    <title>My WebSocket</title>
</head>
 
<body>
Welcome<br/>
</body>
<script src="https://cdn.bootcss.com/stomp.js/2.3.3/stomp.js"></script>
<script src="https://cdn.bootcss.com/sockjs-client/1.1.4/sockjs.js"></script>
<script type="text/javascript">
 
if (typeof WebSocket == 'undefined') {
    console.log('不支持websocket')
}
 
// 初始化 ws 對象
 
//var ws = new WebSocket('ws://本機ip:15674/ws');#ip隱藏大法
var ws = new WebSocket('ws://127.0.0.1:15674/ws');
// 獲得Stomp client對象
var client = Stomp.over(ws);
 
// SockJS does not support heart-beat: disable heart-beats
//client.heartbeat.outgoing = 0;
//client.heartbeat.incoming = 0;
//client.debug = pipe('#second');
 
// 定義連接成功回調函數
var on_connect = function(x) {
    //data.body是接收到的數據
    client.subscribe("/queue/queue1", function(data) {
        var msg = data.body;
        alert("收到數據:" + msg);
    });
};
 
// 定義錯誤時回調函數
var on_error =  function() {
    console.log('error');
};
 
// 連接RabbitMQ
client.connect('guest', 'guest', on_connect, on_error, '/');
console.log(">>>連接上http://localhost:15674");
</script>
</html>

注釋部分:
1.以下部分是測試瀏覽器是否支持websocket,一般瀏覽器應該都支持。

 

 

測試部分

一開始直接瀏覽器打開stomp.html,有可能沒有在該頁面收到來自隊列的消息,這是當然,因為你還沒有在隊列里添加消息,如下:

1.打開 http://localhost:15672/#/queues

 

 

從圖中可以看出,隊列queue1中消息為空,需要添加消息

  1. 在隊列queue1中添加消息,下面我只添加了消息頭和消息內容,消息選擇為1.不持久類型

     

     

  2. 在stomp.html頁面,查看有無消息

     

     

  3. 如圖,收到了消息,說明stomp通道連接成功!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM