// the find
YeautyYE/netty-websocket-spring-boot-starter
:rocket: lightweight high-performance WebSocket framework ( 轻量级、高性能的WebSocket框架)
A Spring Boot starter that lets you write WebSocket servers using an annotation style similar to javax.websocket (@OnOpen, @OnMessage, etc.) but backed by a dedicated Netty listener instead of Spring's own WebSocket support. It's for teams who want Netty's throughput and fine-grained channel tuning without hand-rolling the Netty server/pipeline wiring themselves.
Exposes a long list of real Netty ChannelOptions (write watermarks, SO_BACKLOG, TCP_NODELAY, idle timers) directly as annotation attributes, so you get production-grade tuning without touching Netty APIs. Request binding (@PathVariable, @RequestParam, required/defaultValue semantics) is more thought-out than most Netty wrappers, including list/map binding for repeated params. 1.0.0 added a bounded decompression allocation (message limit + 2x frame limit) specifically to stop a compressed-frame memory blowup, which is the kind of fix you only add after getting burned by it. CI runs a separate 'consumer' integration test that builds a standalone Boot app from the packaged jar, not just unit tests against the source tree.
Each @ServerEndpoint opens its own Netty listener on its own port, separate from server.port — fine for a demo, awkward in any environment (k8s, most PaaS, load balancers) that expects one exposed port per container. There's no story for horizontal scaling: no pub/sub broadcast or session-affinity helper, so fanning a message out to a client connected to a different instance is entirely on you. The 1.0.0 release is a hard fork from 0.13.x tied to Spring Boot 4/Framework 7 and JDK 17+, released only recently (Boot 4.1.1 baseline) — anyone not yet on Boot 4 is stuck on the old branch with no stated support window. Shutdown waits up to 5 seconds per listener and a long-running @OnClose/@OnMessage callback can blow past that silently, which is a sharp edge for anyone relying on graceful termination in a container with a short SIGTERM grace period.