Releases: centrifugal/centrifugo
v1.7.4
No backwards incompatible changes here.
This release is centered around internal refactoring to detach node from server - see more details in #186.
Features
- optionally create PID file using
--pid_file
command line option. - create connections in separate goroutines to slightly improve GC (and therefore reduce memory usage).
Internal (for developers/contributors)
- Using Go 1.8.3 for builds
v1.7.3
No backwards incompatible changes here.
This release built using new version of Go - 1.8.1, previously Centrifugo used Go 1.7.5, so here we benefit from Go evolution improvements - the most notable is improvements in GC pauses which should in turn improve Centrifugo latency. It also reduces memory usage by about 15-20% when websocket compression enabled.
v1.7.2
No backwards incompatible changes here.
Fixes
- fix reusing read and write buffers returned from connection hijack. This was added in previous release but due to the bug in configuration the feature did not work. Now feature introduced in 1.7.1 should work properly.
v1.7.1
No backwards incompatible changes here.
Fixes
- fix mass resubscribe after several Redis disconnects in a row - more details in #163
Features
- update Gorilla Websocket lib - it now tries to reuse buffers returned from Go http library
hijack
method. We adapted Centrifugo default websocket buffer options to utilize this feature (websocket_read_buffer_size
andwebsocket_write_buffer_size
now0
by default).
v1.7.0
This release changes two important aspects of Centrifugo. We expect that it will be fully backwards compatible with previous one in most scenarios until you were using timestamp
message field in some way.
What's changed
- integration with Gorilla Websocket PreparedMessage for raw websocket. We expect it to drastically improve websocket compression case - reducing both memory and CPU in large fan-out scenarios. This change does not affect SockJS in any way.
timestamp
field removed from message. See #147 for motivation.- Several new memory metrics -
node_memory_heap_sys
,node_memory_heap_alloc
,node_memory_stack_inuse
v1.6.5
No backwards incompatible changes here.
Remember that Centrifugo v1.7.0 won't have timestamp
field in message as we have already written in previous version release notes. But we are still waiting for your opinions in issue #147.
Features
- resolve
history_drop_inactive
option edge case (described in #50) - two new options for autocert:
ssl_autocert_force_rsa
andssl_autocert_server_name
. See docs for description
Fixes
- update web interface - in new version we don't show connection endpoints on main page as we can't show them reliably. Final endpoints depend on your production proxy/firewall politics (and port configuration) so we don't try to guess.
v1.6.4
No backwards incompatible changes here.
We consider removing timestamp
field from message as it seems useless and never used by Centrifugo users. Applications that need timestamp for some reason can include it into message JSON payload. If you have any objections please look at issue #147 and write your thoughts against removing this field.
Features
- configurable websocket compression level - see updated docs. Bear in mind that compression is still very CPU and memory expensive
- new metric
node_uptime_seconds
- see updated docs for stats
Fixes
- fixes crash when using builtin TLS server - see #145
- redirect Go std lib logging into our INFO logger
Internal (for developers/contributors)
- Using Go 1.7.5 for builds
- As soon as Go 1.8 out we will be able to remove
x/net/http2
dependency as standard lib will contain fix for #145
v1.6.3
This release fixes wrong decision made in 1.6.x related to pings. We don't rely on client to server
pings to disconnect clients anymore, we also moved back SockJS heartbeat frames - i.e. sending them
from server to client every 25 seconds as before (in Centrifugo < 1.6.0). Recent changes in centrifuge-js
(version 1.4.2) allowed us to not introduce addition reconnects for SockJS polling
transports when sending client to server automatic ping. We also updated documentation chapter about pings a bit.
Fixes
- Random disconnects from Centrifugo when using automatic client to server pings. This is a default
behaviour so it affects almost everyone who using Centrifugo 1.6.x, fixes #142 - Fix writing headers after headers already written in raw websocket endpoint - this remove annoying log line appearing after client can't upgrade connection to Websocket.
v1.6.2
Features
- Use Redis pipelining and single connection for presence/history/channels operations. This increases performance of those operations especially on systems with many CPU cores.
- Homebrew formula to install Centrifugo on MacOS, see README for instructions.
- Update gorilla websocket library - there is one more update for websocket compression: pool flate readers which should increase compression performance.
Fixes
- Fix calling presence remove for every channel (not only channels with presence option enabled).
- Change subscribing/unsubscribing algorithm to Redis channels - it fixes theretical possibility of wrong subscribing state in Redis.
Internal (for developers/contributors)
- We don't use
disconnect
message before closing client connections anymore - we rely on websocket/SockJS close reason now (which is JSON encodedDisconnectAdvice
). Our js client already handles that reason, so no breaking changes there. Some work required in other clients though to supportreconnect: false
in advice.
v1.6.1
This release fixes some configuration problems introduced by v1.6.0 and adds Let's Encrypt support.
Features
- automatic TLS certificates from Let's Encrypt - see #133 and new dedicated documentation chapter
- websocket compression performance improvement (due to Gorilla Websocket library update)