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