Releases: centrifugal/centrifugo
v2.2.7
v2.2.6
This is a quick fix release. Fixes an error on start when namespaces
not set in configuration file,the bug was introduced in v2.2.5, see #319 for details.
Docker images
docker pull centrifugo/centrifugo:v2.2.6
docker pull centrifugo/centrifugo:v2
docker pull centrifugo/centrifugo:v2.2
docker pull centrifugo/centrifugo:latest
v2.2.5
Centrifugo now uses https://cdn.jsdelivr.net/npm/sockjs-client@1/dist/sockjs.min.js
as default SockJS url. This allows Centrifugo to always be in sync with recent v1 SockJS client. This is important to note because SockJS requires client versions to exactly match on server and client sides when using transports involving iframe. Don't forget that Centrifugo has sockjs_url
option to set custom SockJS URL to use on server side.
Improvements:
- support setting all configuration options over environment variables in format
CENTRIFUGO_<OPTION_NAME>
. This was available before but starting from this release we will support setting all options over env - show HTTP status code in logs when debug log level on
- option to customize HTTP handler endpoints, see docs
- possibility to provide custom key and cert files for GRPC API server TLS, see
centrifugo -h
for a bunch of new options
Fixes:
- Fix setting
presence_disable_for_client
andhistory_disable_for_client
on config top level - Fix Let's Encrypt integration by updating to ACMEv2 / RFC 8555 compilant acme library, see #311
Docker images
docker pull centrifugo/centrifugo:v2.2.5
docker pull centrifugo/centrifugo:v2
docker pull centrifugo/centrifugo:v2.2
docker pull centrifugo/centrifugo:latest
v2.2.4
No backwards incompatible changes here.
Improvements:
- Improve web interface: show total client information (sum of all client connections on all running nodes)
Fixes:
- Fixes SockJS WebSocket 403 response for cross domain requests: this is a regression in v2.2.3
Docker images
docker pull centrifugo/centrifugo:v2.2.4
docker pull centrifugo/centrifugo:v2
docker pull centrifugo/centrifugo:v2.2
docker pull centrifugo/centrifugo:latest
v2.2.3
No backwards incompatible changes here.
Improvements:
- New chapter in docs: Benchmarking server. This chapter contains information about test stand inside Kubernetes with million WebSocket connections to a server based on Centrifuge library (the core of Centrifugo). It gives some numbers and insights about hardware requirements and scalability of Centrifugo
- New channel and channel namespace options:
presence_disable_for_client
andhistory_disable_for_client
.presence_disable_for_client
allows to make presence available only for server side API.history_disable_for_client
allows to make history available only for server side API. Previously when enabled presence and history were available for both client and server APIs. Now you can disable for client side. History recovery mechanism if enabled will continue to work for clients anyway even ifhistory_disable_for_client
is on - Wait for close handshake completion before terminating WebSocket connection from server side. This allows to gracefully shutdown WebSocket sessions
Fixes:
- Fix crash due to race condition, race reproduced when history recover option was on. See commit with fix details
- Fix lack of
client_anonymous
option. See #304
This release is based on Go 1.13.x
Docker images
docker pull centrifugo/centrifugo:v2.2.3
docker pull centrifugo/centrifugo:v2
docker pull centrifugo/centrifugo:v2.2
docker pull centrifugo/centrifugo:latest
v2.2.2
No backwards incompatible changes here.
Improvements:
- Support for
tls-alpn-01
ACME challenge, see #283
Fixes:
- fix running HTTP server several times when http-01 ACME challenge used, see #288
Docker images
docker pull centrifugo/centrifugo:v2.2.2
docker pull centrifugo/centrifugo:v2
docker pull centrifugo/centrifugo:v2.2
docker pull centrifugo/centrifugo:latest
v2.2.1
This release fixes two regressions introduced by v2.2.0.
Improvements:
- New documentation chapter about GRPC API in Centrifugo.
Fixes:
- Fix client disconnect in channels with enabled history but disabled recovery
- Fix wrong Push type sent in Redis engine: Leave message was used where Join required
Docker images
docker pull centrifugo/centrifugo:v2.2.1
docker pull centrifugo/centrifugo:v2
docker pull centrifugo/centrifugo:v2.2
docker pull centrifugo/centrifugo:latest
v2.2.0
This release is based on latest refactoring of Centrifuge library. The refactoring opens a road for possible interesting improvements in Centrifugo – such as possibility to use any PUB/SUB broker instead of Redis (here is an example of possible integration with Nats server), or even combine another broker with existing Redis engine features to still have recovery and presence features. Though these ideas are not implemented in Centrifugo yet. Performance of broadcast operations can be slightly decreased due to some internal changes in Centrifuge library. Also take a close look at backwards incompatible changes section below for one breaking change.
Improvements:
- Track client position in channels with
history_recover
option enabled and disconnect in case of insufficient state. This resolves an edge case when messages could be lost in channels withhistory_recover
option enabled after node reconnect to Redis (imagine situation when Redis was unavailable for some time but before Centrifugo node reconnects publisher was able to successfully send a message to channel on another node which reconnected to Redis faster). With new mechanism client won't miss messages though can receive them with some delay. As such situations should be pretty rare on practice it should be a reasonable compromise for applications. New mechanism adds more load on Redis as Centrifugo node periodically polls channel history state. The load is linearly proportional to amount of active channels withhistory_recover
option on. By default Centrifugo will check client position in channel stream not often than once in 40 seconds so an additional load on Redis should not be too high - New options for more flexible conrol over exposed endpoint interfaces and ports:
internal_address
,tls_external
,admin_external
. See description callingcentrifugo -h
. #262, #264 - Small optimizations in Websocket and SockjS transports writes
- Server initiated disconnect number metrics labeled with disconnect code
Backwards incompatible changes:
- This release removes a possibility to set
uid
to Publication over API. This feature was not documented in API reference anduid
field does not make sense to be kept on client protocol top level as in Centrifugo v2 it does not serve any internal protocol purpose. This is just an application specific information that can be put intodata
payload
Release is based on Go 1.12.x
Docker images
docker pull centrifugo/centrifugo:v2.2.0
docker pull centrifugo/centrifugo:v2
docker pull centrifugo/centrifugo:v2.2
docker pull centrifugo/centrifugo:latest
v2.1.0
This release contains changes in metric paths exported to Graphite, you may need to fix your dashboard when upgrading. Otherwise everything in backwards compatible.
Improvements:
- Refactored export to Graphite, you can now control aggregation interval using
graphite_interval
option (in seconds), during refactoring some magical path transformation was removed so now we have more predictable path generation. Though Graphite paths changed with this refactoring - Web interface rewritten using modern Javascript stack - latest React, Webpack instead of Gulp, ES6 syntax
- Aggregated metrics also added to
info
command reply. This makes it possible to look at metrics in admin panel too when callinginfo
command - More options can be set over environment variables – see #254
- Healthcheck endpoint – see #252
- New important chapter in docs – integration guide
- Support setting
api_key
when usingDeploy on Heroku
button - Better timeout handling in Redis engine – client timeout is now bigger than default
redis_read_timeout
so application can more reliably handle errors
Fixes:
- Dockerfile had no correct
WORKDIR
set so it was only possible to use absolute config file path, now this is fixed in this commit - Show node version in admin web panel
- Fix possible goroutine leak on client connection close, commit
Docker images
docker pull centrifugo/centrifugo:v2.1.0
docker pull centrifugo/centrifugo:v2
docker pull centrifugo/centrifugo:v2.1
docker pull centrifugo/centrifugo:latest
v2.0.2
Important If you are using rpm
or deb
packages from packagecloud.io then you have to re-run the installation method of your choice for Centrifugo repository. This is required to update GPG key used. This is a standard process that all packages hosted on packagecloud should do.
Improvements:
- Redis TLS connection support - see issue in Centrifuge lib and updated docs
- Do not send Authorization header in admin web interface when insecure admin mode enabled - helps to protect admin interface with basic authorization (see #240)
Fixes:
- Resubscribe only to shard subset of channels after reconnect to Redis (issue)
Docker images
docker pull centrifugo/centrifugo:v2.0.2
docker pull centrifugo/centrifugo:v2
docker pull centrifugo/centrifugo:v2.0
docker pull centrifugo/centrifugo:latest