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