發現問題:
安裝好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中消息為空,需要添加消息
-
在隊列queue1中添加消息,下面我只添加了消息頭和消息內容,消息選擇為1.不持久類型

- 在stomp.html頁面,查看有無消息
- 如圖,收到了消息,說明stomp通道連接成功!
