https://github.com/missthee/springboot-socketio-simple-demo
[Empty Project]springboot,-socketio简单聊天实例,包含简易页面与服务端
https://github.com/missthee/springboot-socketio-simple-demo
chat socket socketio springboot websocket
Last synced: 3 months ago
JSON representation
[Empty Project]springboot,-socketio简单聊天实例,包含简易页面与服务端
- Host: GitHub
- URL: https://github.com/missthee/springboot-socketio-simple-demo
- Owner: MissThee
- Created: 2019-03-20T02:17:22.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2019-05-23T03:09:43.000Z (about 6 years ago)
- Last Synced: 2025-01-06T19:48:25.372Z (5 months ago)
- Topics: chat, socket, socketio, springboot, websocket
- Language: Java
- Homepage:
- Size: 51.8 KB
- Stars: 3
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# springboot-socketio简易实时聊天
### 结构
```$xslt
src
└─main
└─java
└─com
└─github
└─missthee
│ WebApplication.java
│
├─db
│ ├─data
│ │ FakeDB.java //模拟用户数据
│ │
│ └─model
│ User.java //用户类
│
├─html
│ socketio-test.html //测试网页
│
└─socketio
│ MessageEventHandler.java //自定义监听事件
│
├─config
│ MyCommandLineRunner.java //socketio启动配置(也可直接在spring启动类中直接启动)
│ SocketIOServerConfig.java //socketio服务配置
│
└─model
AckModel.java //ack确认信息使用的类
MessageModel.java //收发信息使用的类
```
### 聊天功能简介
+ socket.io会为每个`链接`生成uuid,项目中每个`用户`有自身的id,采用id与List方式存储`用户`与`链接`的关系,维护`在线用户表`
+ 每个`用户`账号可在多个客户端同时登陆,同时保持多个`链接`,同时接收发消息
+ 当`用户`至少有一个`链接`时,为在线状态;当`用户`没有任何链接时,`用户`从`在线用户表`中移除,为离线状态(目前用户列表由广播发送,于每个用户创建/断开连接时触发)
### 测试方式:
1. 克隆本项目到本地
2. application.properties中server.port修改为任意空闲端口号(此端口不是socket使用的端口,而是为了让springboot无端口冲突,启动起来),或自行配置springboot停用内置tomcat
3. 运行服务端
4. 使用chrome浏览器打开项目目录html/socketio-test.html文件。
输入正确的后台地址,端口号。输入用户id (0到9任意)。连接,测试。
注:本项目,单个用户可在多个客户端登录,同时接收消息