跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 分享个简单的 springboot websocket demo
未分類
2021 年 2 月 5 日

分享个简单的 springboot websocket demo

分享个简单的 springboot websocket demo

資深大佬 : Aidenboss 5

github 地址: https://github.com/yemingfeng/jchat-server

一个简单、基于 springboot websocket 的 demo

依赖
  • maven
  • jdk11
  • redis
redis 配置

redis 默认使用 localhost:6379 。如果需要修改 host:port,可以修改 application.yml
redis 仅仅用于存储用户 username / password

使用
服务端启动

启动后,会监听 localhost:8080 端口
其中,websocket url 为 ws:localhost:8080/ws
获取在线用户数接口为 http://localhost:8080/session/page

前端测试

可以使用 http://coolaf.com/tool/chattest
由于有简单的帐号体系,链接时需要制定 username / password,若 username 不存在,则直接注册成功;否则会判断 username / password 是否匹配
如 ws://localhost:8080/ws?username=aiden&password=123 才能进行连接 图示: 分享个简单的 springboot websocket demo

分享个简单的 springboot websocket demo

大佬有話說 (11)

  • 主 資深大佬 : Aidenboss

    仅简单的分享下,要是需要加其他功能,可以戳我

  • 資深大佬 : para344

    分布式下,怎么实现 A 用户给 B 用户发消息?

  • 主 資深大佬 : Aidenboss

    @para344 我去开发下。
    理论逻辑比较简单,可以使用 redis pub/sub 功能
    当一个用户上线,该实例就订阅一个 key:jchat:{user_id},
    当用户下线,就关闭那个 key

  • 主 資深大佬 : Aidenboss

    @para344 已经实现了分布式 demo 了:
    https://github.com/yemingfeng/jchat-server/commit/82692046e847ad44d189efc1f1da8dce3395f0f1#diff-5d96621f8a7f5b8236e380c03e1b6ccca81c530993fb72f95ed3b85ea9d92713R33

  • 主 資深大佬 : Aidenboss

    鉴于有大佬提出分布式下的情况,使用 redis pub/sub 功能实现了一版
    核心逻辑代码: https://github.com/yemingfeng/jchat-server/commit/82692046e847ad44d189efc1f1da8dce3395f0f1

  • 資深大佬 : RedBeanIce

    歪,此条评论是水军,没有任何意义

    可以尝试一下,netty 手写 websocket,甚至可以试一下 NIO 类写 websocket

  • 主 資深大佬 : Aidenboss

    @RedBeanIce 其实一开始是打算用 netty 写的,也已经写的差不多了。
    之后会发出来

  • 資深大佬 : xxxyh

    我们也是这么做的,通过 redis pub/sub 实现分布式,订阅同一个 id,就可以实现类似聊天室的场景

  • 資深大佬 : vishun

    我看好多都是用`stomp`来实现的。

  • 主 資深大佬 : Aidenboss

    升级了下,变成了支持多设备登录 + 分布式的 websocket demo

  • 資深大佬 : para344

    @Aidenboss 点赞

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具