基于WebSocket + STOMP + SockJS + RabbitMq的聊天室Demo

一、简介

老早之前写的一个基于WebSocket + STOMP + SockJS + RabbitMq的聊天室Demo,感兴趣的小伙伴可以鼓捣一下。

  • 相关技术:WebSocket + STOMP + SockJS + RabbitMq
  • 核心功能:支持广播消息、给指定用户发消息
  • 后端支持集群部署,且客户端到后端需支持会话保持

聊天室页面展示
在这里插入图片描述在这里插入图片描述

Cluster Support
在这里插入图片描述

具体代码参见:
https://gitee.com/luoex/spring-boot-websocket-chat-demo

二、RabbitMq启用STOMP

# linux 
rabbitmq-plugins enable  rabbitmq_stomp

# windows(执行完如下命令后需重启RabbitMQ服务)
rabbitmq-plugins.bat enable rabbitmq_stomp

windows安装结果

D:\programs\RabbitMq3.9.11\rabbitmq_server-3.9.11\sbin>rabbitmq-plugins.bat enable rabbitmq_stomp
Enabling plugins on node rabbit@TSD-LUOHQ:
rabbitmq_stomp
The following plugins have been configured:
  rabbitmq_management
  rabbitmq_management_agent
  rabbitmq_stomp
  rabbitmq_web_dispatch
Applying plugin configuration to rabbit@TSD-LUOHQ...
The following plugins have been enabled:
  rabbitmq_stomp

set 4 plugins.
Offline change; changes will take effect at broker restart.

在这里插入图片描述

三、相关Destination说明

destionation分为3种类型:

  • 广播 - /topic前缀,向所有订阅此类destination的客户端发布消息
  • 单播 - /user前缀,仅向所有订阅此类destination的指定用户的客户端发送消息(仅客户端使用/user前缀,后端无需使用/user前缀)
  • 应用处理 - /app前缀,可有客户端向此类destination发布消息,然后由后端@Controller类中的@MessageMapping方法接收消息并处理(仅客户端使用/app前缀,后端无需使用/app前缀)
类型前缀类型说明前缀使用说明
广播/topic向所有订阅此类destination的客户端发布消息,
例如:/topic/public
前后端均需使用/topic前缀
单播/user仅向所有订阅此类destination的指定用户的客户端发送消息,
例如:/user/msg
仅客户端使用/user前缀,后端无需使用/user前缀
应用处理/app可有客户端向此类destination发布消息,然后由后端@Controller类中的@MessageMapping方法接收消息并处理,
例如:/app/chat.sendMessage
仅客户端使用/app前缀,后端无需使用/app前缀

客户端相关destination:

destination关联方式说明
/topic/public订阅接收广播消息
/user/topic/msg订阅接收个人专属消息
/app/chat.addUser发布发布当前用户上线消息
/app/chat.sendMessage发布发布聊天消息

服务端相关destination:

destination关联方式说明
/topic/public发布发布广播消息
/topic/msg发布发布个人专属消息
/chat.addUser订阅
@MessageMapping(“/chat.addUser”)
接收当前用户上线消息
/chat.sendMessage订阅
@MessageMapping(“/chat.sendMessage”)
接收聊天消息
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

罗小爬EX

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值