Centrifugo v4.0.0 Release Notes
-
🆕 New v4 release puts Centrifugo to the next level in terms of client protocol performance, WebSocket fallback simplicity, SDK ecosystem and channel security model. This is a major release with breaking changes according to our Centrifugo v4 roadmap.
Several important documents we have at this point can help you get started with Centrifugo v4:
- 🚀 Centrifugo v4 release blog post
- 📄 Centrifugo v3 -> v4 migration guide
- 📄 Client SDK API specification
- ⚡️ Updated quickstart tutorial
Highlights
- 🆕 New client protocol iteration and unified client SDK API. See client SDK API specification.
- 👀 All SDKs now support all the core features of Centrifugo - see feature matrix
- 🚀 Our own WebSocket bidirectional emulation layer based on HTTP-streaming and SSE (EventSource). Without sticky session requirement for a distributed case. See details in release post and centrifuge-js README
- 🗄 SockJS is still supported but DEPRECATED
- 🚀 Redesigned, more efficient PING-PONG – see details in release post
- 🚀 Optimistic subscriptions support (implemented in
centrifuge-js
only at this point) – see details in release post - 🚀 Secure by default channel namespaces – see details in release post
- 🚀 Private channel and subscription JWT concepts revised – see details in release post
- Possibility to enable join/leave, recovery and positioning from the client-side
- 🚀 Experimental HTTP/3 support - see details in release post
- 🚀 Experimental WebTransport support - see details in release post
- Avoid sending JSON in WebSocket Close frame reason
- Temporary flag for errors, allows resilient behavior of Subscriptions
gensubtoken
andchecksubtoken
helper cli commands as subscription JWT now behaves similar to connection JWT- 👀 Legacy options removed, some options renamed, see migration guide for details.
- ⚡️
meta
attached to a connection now updated upon connection refresh centrifuge-js
migrated to Typescript- ⚡️ The docs on centrifugal.dev were updated for v4, docs for v3 are still there but under version switch widget.
- Use constant time compare function to compare admin_password and api_key #527
Misc
- 🚀 This release is built with Go 1.18.4