github 地址: https://github.com/yemingfeng/jchat-server
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 才能进行连接
图示:
1
Aidenboss OP 仅简单的分享下,要是需要加其他功能,可以戳我
|
2
para344 2021-02-01 10:01:55 +08:00
分布式下,怎么实现 A 用户给 B 用户发消息?
|
3
Aidenboss OP |
4
Aidenboss OP |
5
Aidenboss OP 鉴于有大佬提出分布式下的情况,使用 redis pub/sub 功能实现了一版
核心逻辑代码: https://github.com/yemingfeng/jchat-server/commit/82692046e847ad44d189efc1f1da8dce3395f0f1 |
6
RedBeanIce 2021-02-01 11:34:29 +08:00
歪楼,此条评论是水军,没有任何意义
可以尝试一下,netty 手写 websocket,甚至可以试一下 NIO 类写 websocket |
7
Aidenboss OP @RedBeanIce 其实一开始是打算用 netty 写的,也已经写的差不多了。
之后会发出来 |
8
xxxyh 2021-02-01 12:04:59 +08:00
我们也是这么做的,通过 redis pub/sub 实现分布式,订阅同一个 id,就可以实现类似聊天室的场景
|
9
vishun 2021-02-01 15:41:04 +08:00
我看好多都是用`stomp`来实现的。
|
10
Aidenboss OP 升级了下,变成了支持多设备登录 + 分布式的 websocket demo
|