Releases: anycable/anycable-go
1.4.6
1.4.5
1.4.4
1.4.3
Features
- Added ability to require
pong
messages from clients (for better detection of broken connections).
Use --pong_timoout=<number of seconds to wait for ping>
option to enable this feature.
- Added ability to configure ping interval and ping timestamp precision per connection.
You can use URL query params to configure ping interval and timestamp precision per connection:
For example, using the following URL, you can set the ping interval to 10 seconds and the timestamp precision to milliseconds:
ws://localhost:8080/cable?pi=10&ptp=ms
- PRO: Added support for binary version of the extended protocol (
actioncable-v1-ext-msgpack
andactioncable-v1-ext-protobuf
).
Fixes
- Minor memory broker fixes.
1.4.2
Changes
- The
--disconnect_timeout
parameter has been replaced by the--shutdown_timeout
.
The new option specify the max time for the whole graceful shutdown process, not only clients disconnecting.
Also, disconnecting clients on shutdown now happens in parallel. You can control the number of executors via the --shutdown_pool_size
configuration option (so, setting it to 1 would result in the previous behaviour).
- PRO: In the PRO version, we added a slow drain mode for disconnection. See the docs for more information.
Fixes
- Fixed
panic
when using memory backend for reliable streams (#183).
1.4.1
1.4.0
Highlights
- Reliable streams and resumable sessions.
AnyCable-Go improves data consistency of your real-time applications by allowing clients to request the missed messages on re-connection and restore their state without re-authentication and re-subscription to channels.
See documentation for details.
- RPC over HTTP.
AnyCable now supports RPC over HTTP communication as an alternative to gRPC one. This allows you to embed AnyCable RPC part into your web server (e.g., Puma) without requiring a separate process or port. This is especially useful for Heroku deployments.
See documentation for details.
Features
- Redis X broadcasting adapter.
Redis X is a new broadcasting adapter that use Redis Streams instead of Publish/Subscribe to deliver broadcasting messages from your application to WebSocket servers. This is another step towards improved consistency: no message broadcasted from your application will be lost, even if WebSocket servers are temporarily unavailable. This is especially useful in combination with reliable streams.
See documentation for details.
Changes
- Broadcasted messages are now delivered in the order they were received by the server.
Previously, we used an executor pool internally to deliver broadcasted messages concurrently (to reduce the latency). That led to nonderterministic order of messages within a single stream delivered in a short period of time. Now, we preserve the order of messages within a stream—the delivered as they were accepted by the server.
- New disconnect modes and
--disable_disconnect
deprecation.
AnyCable-Go becomes smarter with regards to performing Disconnect calls. In the default mode ("auto"), clients not relying on #disconnect
/ #unsubscribed
callbacks do not trigger Disconnect RPC calls on connection close. Thus, if you use JWT identification and Hotwire signed streams with AnyCable-Go, you don't need to worry about the --disable_disconnect
option to use AnyCable in the RPC-less mode.
The previous --disable_disconnect
behaviour can be achieved by setting --disconnect_mode=never
.
1.4.0-rc.3
1.4.0-rc.2
Second release candidates for 1.4.0.
See release notes.
1.4.0-rc.1
First release candidates for 1.4.0.
See release notes.