A clusterable multi-namespace long connection service based on Netty-socketIO
Technology | Version |
---|---|
socket.io-client (Java WebSocket client support) | 1.0.2 |
netty-socketio (Socket.IO Java server implementation) | 2.0.6 |
jdk | >= 17 |
springboot | 3.0.0 |
redisson | 3.24.3 |
Jgroups | 5.3.0.Final |
jprotobuf | 2.4.20 |
hutool | 5.8.25 |
Technology | Version |
---|---|
socket.io-client (JS WebSocket client support) | 2.5.0(2.5.0 (currently netty-socketio only supports socket.io-client v2.x)) |
1.Why use Socket.IO instead of native WebSocket
2.Clustering Approach
3.System Optimization
4.EIO Protocol Specification
The project uses IntelliJ Idea's default formatting
- Each feature should be one commit ... This is important
The commit messages follow these common formats:
- feat[module]: Add some feature
- perf[module]: Optimize module code or some feature
- fix[module]: Fix some bug
- test[module]: Test something
- del[module]: Delete some feature or useless code
- ref[module]: Rename or refactor module
- doc[module]: Add some docs
See more details::
commit-types
Mobile client demo source code:
web client demo
The frontend code is really poorly written! Lots of code are copied from other projects, thanks to these projects:
https://github.com/auntvt/Timo (Admin UI) https://github.com/Rudolf-Barbu/Ward (Monitoring UI) https://github.com/nguyencse/HeyU (Client UI)
1.Check server config, make sure cluster is in standalone mode
2.Import SQL file. My local is MySQL 5.7, adjust types if 8.0
3.Configure Redis and MySQL, import SQL
4.Start server
5.Admin portal http://localhost/web/login default port 80, Netty default 8080 To try client demo, put https://github.com/yujuncai/Tia-web-demo code into resources/static/webDemo folder
PS: Frontend is just for demo, cannot be used in production. Code quality is really bad. Any frontend experts willing to help improve it?