声明:本文绝大部分为引用内容,转载初衷是为了方便本人快速部署项目所需配置及文件
参考链接:Linux离线安装RabbitMQ - 酉卒之子 - 博客园
1.下载安装包,yum下载安装太慢了,官网也是,本人已上传了所需安装包
2.安装,在linux服务器中上传此三个安装包的同级目录依次执行即可
sudo rpm -ivh erlang-23.3.4.3-1.el7.x86_64.rpm
sudo rpm -ivh socat-1.7.3.2-2.el7.x86_64.rpm
sudo rpm -ivh rabbitmq-server-3.8.2-1.el7.noarch.rpm
3.运行相关命令
// 启动
rabbitmq-server -detached
// 停止
rabbitmqctl stop
// 查看状态
rabbitmqctl status
4.配置web可视化插件、stomp以及账号相关配置
// web可视化插件开启
rabbitmq-plugins enable rabbitmq_management
// stomp插件开启(这个可以在web项目中接收、推送消息到rabbit-mq上)
rabbitmq-plugins enable rabbitmq_web_stomp rabbitmq_stomp rabbitmq_web_stomp_examples
// 配置超级管理员账号密码,可方便稍后在web可视化界面配置其他设置,例如配置一个账号为admin,密码为123456
rabbitmqctl add_user admin 123456
// 配置队列权限,admin为指定账号
rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
// 配置账号最高权限,admin为指定账号
rabbitmqctl set_user_tags admin administrator
5.登录web端查看,默认端口为15672
6.测试
<!DOCTYPE HTML>
<html>
<head>
<title>My WebSocket</title>
</head>
<body>
Welcome<br/>
<input id="text" type="text" /><button id="message">提交</button>
<div>
</div>
</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');
// 获得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("队列名", function(data) {
// var msg = data.body;
console.log("收到数据:" + data);
});
};
// 定义错误时回调函数
var on_error = function() {
console.log('error');
};
// 连接RabbitMQ
client.connect('账号', '密码', on_connect, on_error, '/');
console.log(">>>连接上http://localhost:15674");
window.onload = function(){
var obtn=document.getElementById("message");
obtn.onclick = function(){
client.send("队列名", {priority: 9}, document.getElementById("text").value);
};
}
</script>
</html>