1.基于需要实现一个IM 就记录一下 。
1.将websocket 注册到 nacos 服务上 也是IM 注册到nacos 上 借助rabbitmq 实现集群以及redis 实现记录离线消息具体看代码文字懒得写(里面自己还尝试换了 zookeeper 作为注册中心 仅供学习)IM 和 网关的 目录:
整个逻辑是启动服务将websocket,网关 注册到 nacos 通过访问 网关 去 LB 多台websocket的服务器达到集群 nacos 本身就有基于权重的负载均衡机制。
通过客户端和服务端的长链接进行聊天。网关可以自行发挥 反正是学习为主。
基于docker 打包 部署 代码 (IM 和 网关一样的部署方式):
FROM java:8 COPY *.jar /usr/local/bin/gateway-0.0.1-SNAPSHOT.jar COPY /config /usr/local/bin/config CMD ["--server.port=9011"] EXPOSE 9011 # ENTRYPOINT 执行项目 app.jar及外部配置文件,多个配置文件逗号隔开 ENTRYPOINT ["java", "-jar", "-Dspring.profiles.active=dev", "/usr/local/bin/gateway-0.0.1-SNAPSHOT.jar","--spring.config.location=/usr/local/bin/config/bootstrap.yml"]
代码里面有dockerFile直接用就行了 注意路径
具体的代码有点多 直接上gitup 反正互相学习学习
静态页面在 webapp中
代码 https://github.com/wangwanghui/IM-netty
网关的也在 对应的仓库里面
需要搭建的环境 rabbitmq+mysql+nacos+netty +docker+websocket文章来源:https://www.toymoban.com/news/detail-405324.html
文章来源地址https://www.toymoban.com/news/detail-405324.html
到了这里,关于基于netty+springCloudGateWay+nacos 实现的聊天室(可支持集群)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!