Skip to content

yujuncai/Tia-notify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

中文说明

Tia

A clusterable multi-namespace long connection service based on Netty-socketIO

Technology Stack

Backend

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

Frontend (TBD)

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))

Documentation

1.Why use Socket.IO instead of native WebSocket

为何选用Socket.io

2.Clustering Approach

集群思路

3.System Optimization

系统调优

4.EIO Protocol Specification

eio协议官方说明


Specifications

Commit Format

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


UI Showcase

H5

Mobile client demo source code:
web client demo

image.png

image.png

image.png

PC

image.png
image.png
image.png

Acknowledgements

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)

Quick Start

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?

About

基于Netty-socketIO的可集群的多Namespace长连接服务--->A clusterable multi-namespace long connection service based on Netty-socketIO

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published