A few weeks ago we released the alpha1 version of SignalR for ASP.NET Core 2.0. Today we are pleased to announce a release of the alpha2 version of SignalR for ASP.NET Core 2.0. This release contains a number of changes (including API changes) and improvements.
Notable Changes
- The JSON hub protocol now uses camel casing by default when serializing and deserializing objects on the server and by the C# client
- IObservable subscriptions for streaming methods are now automatically unsubscribed when the connection is closed
- It is now possible to invoke client methods in a type safe manner when using HubContext (a community contribution from FTWinston– Thanks!)
- A new HubConnectionContext.Abort() method allows terminating connections from the server side
- Users can now control how their objects are serialized when using MessagePack hub protocol
- Length prefixes used in binary protocols are now encoded using Varints which reduces the size of the message by up to 7 bytes
Release notes can be found on github.
API Changes
TypeScript/JavaScript client:
- Event names were changed and now use lower case:
- onDataReceived on IConnection was renamed to onreceive
- onClosed on HubConnection and IConnection was renamed to onclose
- It is now possible to register multiple handlers for the HubConnection onclose event by passing the handler as a parameter. The code used to subscribe to the closed event when using the alpha1 version of the client:
needs to be changed to:
- The HubConnection on() method now allows registering multiple callbacks for a client method invocation
- A new off() method was added to HubConnection to enable removing callbacks registered with the on method
C# Client
The HubConnection.Stream() method was changed to be async and renamed to StreamAsync() New overloads of WithJsonHubProtocol() and WithMessagePackProtocol() on HubConnectionBuilder that take protocol-specific settings were added
Server
The params keyword was removed from the IClientProxy.InvokeAsync() method and replaced by a set of extension methods
A word of thanks to everyone who has tried the new SignalR and provided feedback. Please keep it up! You can provide feedback or let us know about bugs/issues here.
For examples on using this, and future, versions you can look at the SignalR Samples repository on GitHub.