- 轉自: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>
-