Spring Boot系列十七 Spring Boot 集成 websocket,使用RabbitMQ做为消息代理

1. 概述

在上篇文章Spring Boot系列十六 WebSocket简介和spring boot集成简单消息代理中我们使用的消息代理是spring内置的简单消息代理,简单消息代理非常适合入门,但是只支持STOMP命令的子集(如不支持acks, receipts),依赖于消息发送循环,并且不支持集群。我们可以使用外部的消息代理(如RabbitMQ, ActiveMQ),来实现全功能消息代理。本文以集成RabbitMQ为例。本文的主要内容如下:

  • 使用RabbitMQ做websocket消息代理的准备工作和消息流程图
  • Spring Boot使用RabbitMQ做websocket的主要代码
  • 演示在RabbitMQ不同目的的(destination)用法

2. 使用RabbitMQ做websocket消息代理的准备工作和消息流程图

关于RabbitMQ的用法,可以参考本作者的RabbitMQ系列文章

2.1. 使用RabbitMQ做websocket消息代理的准备工作

我们选择类似RabbitMQ全功能的消息代理。安装消息代理后,以支持STOMP的情况情况运行服务。
我们在RabbitMQ上启动rabbitmq_web_stomp插件

  1. 在RabbitMQ上启动rabbitmq_web_stomp插件,在rabbitMQ上执行如下命令:sudo rabbitmq-plugins enable rabbitmq_web_stomp
  2. 登录RabbitMQ管理平台,看到如下信息,发现已经开启stomp代理服务
    这里写图片描述

2.2. 消息流程图

此图和使用简单消息最大的不同是”broker relay”用于通过TCP将消息传递给外部STOMP代理(如这里是RabbitMQ),并将消息从代理传递给订阅客户

这里写图片描述

3. Spring Boot使用RabbitMQ做websocket的主要代码

3.1. pom.xml

首先在上一篇文章的基础上增加如下jar

<!-- https://mvnrepository.com/artifact/io.projectreactor/reactor-net -->
<dependency>
    <groupId>io.projectreactor</groupId>
    <artifactId>reactor-net</artifactId>
    <version>2.0.8.RELEASE</version>
</dependency>

<!-- https://mvnrepository.com/artifact/io.netty/netty-all -->
<dependency>
    
  • 4
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值