- 轉自:https://blog.csdn.net/u010533511/article/details/90768579
 - rabbitmq的安裝:https://blog.csdn.net/u010533511/article/details/90752530
 
- rabbitmq-user1.html給隊列user1發送消息,監聽消費隊列user2的消息
 - rabbitmq-user2.html給隊列user2發送消息,監聽消費隊列user1的消息
 
這樣rabbitmq-user1.html和rabbitmq-user1.html 實現了點對點的消息發送與接收
- 前台html發送消息(rabbitmq-user1.html)
 -  
          
-  
            <!DOCTYPE html>
 -  
            <html lang="en">
 -  
            <head>
 -  
            <meta charset="UTF-8">
 -  
            <title>Title </title>
 -  
            <script src="jquery-1.9.1.min.js"> </script>
 -  
            <script src="sockjs.min.js"> </script>
 -  
            <script src="stomp.js"> </script>
 -  
            <script>
 -  
            // 初始化 ws 對象
 -  
            if (location.search == '?ws') {
 -  
            console.log( '------------------');
 -  
            var ws = new WebSocket( 'ws://192.168.135.xxx:15674/ws');
 -  
            } else {
 -  
            console.log( '******************');
 -  
            var ws = new SockJS( 'http://192.168.135.xxx:15674/stomp');
 -  
            }
 -  
            
 -  
            // 獲得Stomp client對象
 -  
            var client = Stomp.over(ws);
 -  
            // SockJS does not support heart-beat: disable heart-beats
 -  
            //heart-beating也就是頻率,incoming是接收頻率,outgoing是發送頻率
 -  
            client.heartbeat.outgoing = 0; //發送頻率
 -  
            client.heartbeat.incoming = 0; //接收頻率
 -  
            //關閉控制台調試數據:client.debug = null
 -  
            client.debug = function(str) {
 -  
            $( "#debug").append(str + "<br/>");
 -  
            };;
 -  
            
 -  
            // 定義連接成功回調函數
 -  
            var on_connect = function(x) {
 -  
            //data.body是接收到的數據 (接收隊列user2的數據)
 -  
            client.subscribe( "/queue/user2", function(data) {
 -  
            var msg = data.body;
 -  
            console.log( "收到數據:");
 -  
            console.log(data);
 -  
            $( "#message").append(msg + "<br/>");
 -  
            data.ack(); //如果后面帶了參數 ack 就是指定要手動確認消息,沒帶就是自動確認
 -  
            },{ ack: 'client'});
 -  
            };
 -  
            
 -  
            // 定義錯誤時回調函數
 -  
            var on_error = function() {
 -  
            console.log( 'error');
 -  
            };
 -  
            // 連接RabbitMQ
 -  
            client.connect( 'zcw', '123456', on_connect, on_error, '/');
 -  
            console.log(on_connect);
 -  
            $( function () {
 -  
            //發送消息到隊列user1
 -  
            $( '#send').click( function () {
 -  
            var content=$( '#sendContent').val();
 -  
            console.log(content);
 -  
            client.send( "/queue/user1", {}, content);
 -  
            $( '#sendContent').val( '');
 -  
            });
 -  
            });
 -  
            </script>
 -  
            </head>
 -  
            <body>
 -  
            <div id="debug" style="display: none;">
 -  
            
 -  
            </div>
 -  
            <!--顯示接收到的消息-->
 -  
            <div id="message">
 -  
            
 -  
            </div>
 -  
            <div id="content">
 -  
            <!--發送消息的內容-->
 -  
            <textarea id="sendContent"> </textarea>
 -  
            </div>
 -  
            <div id="success">
 -  
            <button id="send" >Send Mssages </button>
 -  
            </div>
 -  
            
 -  
            </body>
 -  
            </html>
 
 -  
            
 - 前台html消費消息(rabbitmq-user2.html)
 -  
          
-  
            <!DOCTYPE html>
 -  
            <html lang="en">
 -  
            <head>
 -  
            <meta charset="UTF-8">
 -  
            <title>Title </title>
 -  
            <script src="jquery-1.9.1.min.js"> </script>
 -  
            <script src="sockjs.min.js"> </script>
 -  
            <script src="stomp.js"> </script>
 -  
            <script>
 -  
            // 初始化 ws 對象
 -  
            if (location.search == '?ws') {
 -  
            console.log( '------------------');
 -  
            var ws = new WebSocket( 'ws://192.168.135.xxx:15674/ws');
 -  
            } else {
 -  
            console.log( '******************');
 -  
            var ws = new SockJS( 'http://192.168.135.xxx:15674/stomp');
 -  
            }
 -  
            
 -  
            // 獲得Stomp client對象
 -  
            var client = Stomp.over(ws);
 -  
            // SockJS does not support heart-beat: disable heart-beats
 -  
            //heart-beating也就是頻率,incoming是接收頻率,outgoing是發送頻率
 -  
            client.heartbeat.outgoing = 0; //發送頻率
 -  
            client.heartbeat.incoming = 0; //接收頻率
 -  
            //關閉控制台調試數據:client.debug = null
 -  
            client.debug = function(str) {
 -  
            $( "#debug").append(str + "<br/>");
 -  
            };
 -  
            
 -  
            // 定義連接成功回調函數
 -  
            var on_connect = function(x) {
 -  
            //接收user1隊列的數據
 -  
            client.subscribe( "/queue/user1", function(data) {
 -  
            var msg = data.body;
 -  
            console.log( "收到數據:");
 -  
            console.log(data);
 -  
            $( "#message").append(msg + "<br/>");
 -  
            data.ack(); //如果后面帶了參數 ack 就是指定要手動確認消息,沒帶就是自動確認
 -  
            },{ ack: 'client'});
 -  
            };
 -  
            //client.send("/queue/default", {}, "I thought I was in a transaction!");
 -  
            // 定義錯誤時回調函數
 -  
            var on_error = function() {
 -  
            console.log( 'error');
 -  
            };
 -  
            
 -  
            // 連接RabbitMQ
 -  
            client.connect( 'zcw', '123456', on_connect, on_error, '/');
 -  
            $( function () {
 -  
            //發送消息到user2隊列
 -  
            $( '#send').click( function () {
 -  
            var content=$( '#sendContent').val();
 -  
            console.log(content);
 -  
            client.send( "/queue/user2", {}, content);
 -  
            $( '#sendContent').val( '');
 -  
            });
 -  
            });
 -  
            </script>
 -  
            </head>
 -  
            <body>
 -  
            <div id="debug" style="display: none;">
 -  
            
 -  
            </div>
 -  
            <div id="message">
 -  
            
 -  
            </div>
 -  
            <div id="content">
 -  
            <textarea id="sendContent"> </textarea>
 -  
            </div>
 -  
            <div id="success">
 -  
            <button id="send" >Send Mssages </button>
 -  
            </div>
 -  
            
 -  
            </body>
 -  
            </html>
 
 -  
            
 
- rabbitmq-user1.html給隊列user1發送消息,監聽消費隊列user2的消息
 - rabbitmq-user2.html給隊列user2發送消息,監聽消費隊列user1的消息
 
這樣rabbitmq-user1.html和rabbitmq-user1.html 實現了點對點的消息發送與接收
- 前台html發送消息(rabbitmq-user1.html)
 -  
          
-  
            <!DOCTYPE html>
 -  
            <html lang="en">
 -  
            <head>
 -  
            <meta charset="UTF-8">
 -  
            <title>Title </title>
 -  
            <script src="jquery-1.9.1.min.js"> </script>
 -  
            <script src="sockjs.min.js"> </script>
 -  
            <script src="stomp.js"> </script>
 -  
            <script>
 -  
            // 初始化 ws 對象
 -  
            if (location.search == '?ws') {
 -  
            console.log( '------------------');
 -  
            var ws = new WebSocket( 'ws://192.168.135.xxx:15674/ws');
 -  
            } else {
 -  
            console.log( '******************');
 -  
            var ws = new SockJS( 'http://192.168.135.xxx:15674/stomp');
 -  
            }
 -  
            
 -  
            // 獲得Stomp client對象
 -  
            var client = Stomp.over(ws);
 -  
            // SockJS does not support heart-beat: disable heart-beats
 -  
            //heart-beating也就是頻率,incoming是接收頻率,outgoing是發送頻率
 -  
            client.heartbeat.outgoing = 0; //發送頻率
 -  
            client.heartbeat.incoming = 0; //接收頻率
 -  
            //關閉控制台調試數據:client.debug = null
 -  
            client.debug = function(str) {
 -  
            $( "#debug").append(str + "<br/>");
 -  
            };;
 -  
            
 -  
            // 定義連接成功回調函數
 -  
            var on_connect = function(x) {
 -  
            //data.body是接收到的數據 (接收隊列user2的數據)
 -  
            client.subscribe( "/queue/user2", function(data) {
 -  
            var msg = data.body;
 -  
            console.log( "收到數據:");
 -  
            console.log(data);
 -  
            $( "#message").append(msg + "<br/>");
 -  
            data.ack(); //如果后面帶了參數 ack 就是指定要手動確認消息,沒帶就是自動確認
 -  
            },{ ack: 'client'});
 -  
            };
 -  
            
 -  
            // 定義錯誤時回調函數
 -  
            var on_error = function() {
 -  
            console.log( 'error');
 -  
            };
 -  
            // 連接RabbitMQ
 -  
            client.connect( 'zcw', '123456', on_connect, on_error, '/');
 -  
            console.log(on_connect);
 -  
            $( function () {
 -  
            //發送消息到隊列user1
 -  
            $( '#send').click( function () {
 -  
            var content=$( '#sendContent').val();
 -  
            console.log(content);
 -  
            client.send( "/queue/user1", {}, content);
 -  
            $( '#sendContent').val( '');
 -  
            });
 -  
            });
 -  
            </script>
 -  
            </head>
 -  
            <body>
 -  
            <div id="debug" style="display: none;">
 -  
            
 -  
            </div>
 -  
            <!--顯示接收到的消息-->
 -  
            <div id="message">
 -  
            
 -  
            </div>
 -  
            <div id="content">
 -  
            <!--發送消息的內容-->
 -  
            <textarea id="sendContent"> </textarea>
 -  
            </div>
 -  
            <div id="success">
 -  
            <button id="send" >Send Mssages </button>
 -  
            </div>
 -  
            
 -  
            </body>
 -  
            </html>
 
 -  
            
 - 前台html消費消息(rabbitmq-user2.html)
 -  
          
-  
            <!DOCTYPE html>
 -  
            <html lang="en">
 -  
            <head>
 -  
            <meta charset="UTF-8">
 -  
            <title>Title </title>
 -  
            <script src="jquery-1.9.1.min.js"> </script>
 -  
            <script src="sockjs.min.js"> </script>
 -  
            <script src="stomp.js"> </script>
 -  
            <script>
 -  
            // 初始化 ws 對象
 -  
            if (location.search == '?ws') {
 -  
            console.log( '------------------');
 -  
            var ws = new WebSocket( 'ws://192.168.135.xxx:15674/ws');
 -  
            } else {
 -  
            console.log( '******************');
 -  
            var ws = new SockJS( 'http://192.168.135.xxx:15674/stomp');
 -  
            }
 -  
            
 -  
            // 獲得Stomp client對象
 -  
            var client = Stomp.over(ws);
 -  
            // SockJS does not support heart-beat: disable heart-beats
 -  
            //heart-beating也就是頻率,incoming是接收頻率,outgoing是發送頻率
 -  
            client.heartbeat.outgoing = 0; //發送頻率
 -  
            client.heartbeat.incoming = 0; //接收頻率
 -  
            //關閉控制台調試數據:client.debug = null
 -  
            client.debug = function(str) {
 -  
            $( "#debug").append(str + "<br/>");
 -  
            };
 -  
            
 -  
            // 定義連接成功回調函數
 -  
            var on_connect = function(x) {
 -  
            //接收user1隊列的數據
 -  
            client.subscribe( "/queue/user1", function(data) {
 -  
            var msg = data.body;
 -  
            console.log( "收到數據:");
 -  
            console.log(data);
 -  
            $( "#message").append(msg + "<br/>");
 -  
            data.ack(); //如果后面帶了參數 ack 就是指定要手動確認消息,沒帶就是自動確認
 -  
            },{ ack: 'client'});
 -  
            };
 -  
            //client.send("/queue/default", {}, "I thought I was in a transaction!");
 -  
            // 定義錯誤時回調函數
 -  
            var on_error = function() {
 -  
            console.log( 'error');
 -  
            };
 -  
            
 -  
            // 連接RabbitMQ
 -  
            client.connect( 'zcw', '123456', on_connect, on_error, '/');
 -  
            $( function () {
 -  
            //發送消息到user2隊列
 -  
            $( '#send').click( function () {
 -  
            var content=$( '#sendContent').val();
 -  
            console.log(content);
 -  
            client.send( "/queue/user2", {}, content);
 -  
            $( '#sendContent').val( '');
 -  
            });
 -  
            });
 -  
            </script>
 -  
            </head>
 -  
            <body>
 -  
            <div id="debug" style="display: none;">
 -  
            
 -  
            </div>
 -  
            <div id="message">
 -  
            
 -  
            </div>
 -  
            <div id="content">
 -  
            <textarea id="sendContent"> </textarea>
 -  
            </div>
 -  
            <div id="success">
 -  
            <button id="send" >Send Mssages </button>
 -  
            </div>
 -  
            
 -  
            </body>
 -  
            </html>
 
 -  
            
 
