Releases: centrifugal/centrifuge
Releases · centrifugal/centrifuge
v0.20.0
- Support client protocol v2. As of v0.20.0 it's considered experimental and can have some adjustments in the following releases. But the plan is to make it default at some point. The initial motivation described in #217 and implementation is in #218. Client connectors which support client protocol v2 will be released soon. Both
WebsocketConfigandSockjsConfignow have an option to set default protocol version handler will expect from connecting clients. It's also possible to override that option by usingcf_protocol_versionURL parameter (v1orv2) when connecting to the server. This should provide a way to migrate to new protocol gradually. - Refactor disconnect semantics for client protocol v2. We are getting rid of JSON in close reason by introducing strict ranges for disconnect codes - see #221. Client connectors will expose disconnect codes when working with client protocol v2. Client-side disconnect reasons will also have its own codes – according to this comment.
- Various optimizations in message broadcast, client command handling, client initial connect – fewer things now escape to the heap.
TransportWriteEvent.IsPushfield is removed (we can discuss putting it back later if required).- Node
SurveyAPI now allows choosing the node to which we want to send survey request. - Warn log level introduced between Info and Error.
- Publication now has
Tagsfield (map[string]string) – this may help to put some useful info into publication without modifying payload. It can help to avoid processing payload in some scenarios. - Support for setting auth user in Redis shard configuration – for Redis itself and for Sentinel. This is useful if ACL-based auth used on Redis side.
gorelease -base v0.19.0 -version v0.20.0
# github.com/centrifugal/centrifuge
## incompatible changes
(*Disconnect).CloseText: changed from func() string to func(ProtocolVersion) string
(*Node).Survey: changed from func(context.Context, string, []byte) (map[string]SurveyResult, error) to func(context.Context, string, []byte, string) (map[string]SurveyResult, error)
LogLevelError: value changed from 4 to 5
PublishOptions: old is comparable, new is not
PublishReply: old is comparable, new is not
TransportInfo.ProtocolVersion: added
TransportWriteEvent.IsPush: removed
## compatible changes
LogLevelWarn: added
ProtocolVersion1: added
ProtocolVersion2: added
ProtocolVersion: added
Publication.Tags: added
PublishOptions.Tags: added
RedisShardConfig.SentinelUser: added
RedisShardConfig.User: added
SockjsConfig.ProtocolVersion: added
WebsocketConfig.ProtocolVersion: added
WithTags: added
# summary
v0.20.0 is a valid semantic version for this release.
v0.19.0
- JSON protocol performance improvements. See #215 for details. We are now more strict in parsing multiple command frames: in a multiple command JSON frame individual
Commands must be separated by exactly one new line symbol and have an optional new line after the last command. This was always this way and current client connectors work according to these requirements – but since the parser becoming more strict this can theoretically cause some problems with third-party connector implementations. - Support custom
datafrom a client passed in a subscribe command, this data is then available inSubscribeEvent.
gorelease -base v0.18.9 -version v0.19.0
# github.com/centrifugal/centrifuge
## incompatible changes
SubscribeEvent: old is comparable, new is not
## compatible changes
SubscribeEvent.Data: added
# summary
v0.19.0 is a valid semantic version for this release.
v0.18.9
gorelease -base v0.18.8 -version v0.18.9
# github.com/centrifugal/centrifuge
## compatible changes
UnsubscribeEvent.Disconnect: added
UnsubscribeEvent.Reason: added
UnsubscribeReason: added
UnsubscribeReasonClient: added
UnsubscribeReasonDisconnect: added
UnsubscribeReasonServer: added
# summary
v0.18.9 is a valid semantic version for this release.
v0.18.8
- Fix subscription cleanup on client close. Pull request with a fix.
v0.18.7
- Fix deadlock during PUB/SUB sync in channels with recovery. See original report and pr with a fix.
v0.18.6
v0.18.5
- Update
sockjs-godependency (contains fix for sockjs-go#100).
v0.18.4
v0.18.3
- Fix
unexpected end of JSON inputerrors in Javascript client with Centrifuge >= v0.18.0 when publishing formatted JSON (with new lines). See centrifugal/protocol#10. Pull request also removes one extra allocation (data copy) during JSON and Protobuf protocol Push message encoding. As the result JSON without new lines will be encoded even faster, Protobuf messages will be encoded faster regardless new lines in payloads. JSON encoding of payload with new lines will require additional allocation since we are stripping new lines now. The penalty is not critical though - see benchmarks in mentioned pull request.