rabbitmq消息发送与接收&stomp通道测试

新人学习笔记,有错欢迎交流指出~~

发现问题:

安装好Erlang、rabbitmq客户端后,启用插件rabbitmq-plugins enable rabbitmq_web_stomp后无法访问http://localhost:15674/stomp/info,在百度了许久后还是无法解决这个访问的问题,一度以为自己的stomp通道没有建立成功
无法访问stomp/info对应页面

解决办法:

后来,仔细研究了一下,通过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,一般浏览器应该都支持。

WebSocket是html5新增加的一种通信协议,目前流行的浏览器都支持这个协议, 例如Chrome,Safari,Firefox,Opera,IE等等,对该协议支持最早的应该是chrome

if (typeof WebSocket == 'undefined') {
    console.log('不支持websocket')
}

2.如下,第一行代码访问的是本机ip对应的rabbitmq,第二行代码对应的是localhost的rabbitmq,这里两者的不同可以通过访问rabbitmq管理页面来体验一下

通过http://127.0.0.1:15672/来访问rabbitmq管理页面和通过http://本机ip:15672/来访问rabbitmq管理页面是不一样的。ip不同,账户和密码,消息队列等等都有可能不同

//var ws = new WebSocket('ws://本机ip:15674/ws');
var ws = new WebSocket('ws://127.0.0.1:15674/ws');

3.这里的/queue/queue1,指的是队列/队列名称,即名为queue1的queue。注意访问下rabbitmq的管理页面看看有没有这个队列。

 client.subscribe("/queue/queue1", function(data)

4.总所周知,‘guest’, 'guest’分别是自带的用户名和密码

client.connect('guest', 'guest', on_connect, on_error, '/');

测试部分

一开始直接浏览器打开stomp.html,有可能没有在该页面收到来自队列的消息,这是当然,因为你还没有在队列里添加消息,如下:

1.打开 http://localhost:15672/#/queues,
rabbitmq队列页面
从图中可以看出,队列queue1中消息为空,需要添加消息

  1. 在队列queue1中添加消息,下面我只添加了消息头和消息内容,消息选择为1.不持久类型
    在队列queue1中添加消息
    点击发送~

  2. 在stomp.html页面,查看有无消息
    在这里插入图片描述

如图,收到了消息,说明stomp通道连接成功!

  • 接下来,通过maven项目实际操作一番,看看消息生产者与消费者之间如何连接,这是另外一篇博文的事了。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值