SignalR Versions Save

Incredibly simple real-time web for .NET

2.1.2

9 years ago

Bugs Fixed

  • Disable client-side keep alive checking in Long Polling clients by default (#3259)
  • Hubs are mistakenly identified as plain objects by jQuery 2.x (#3210)
  • ObservableDbOperation looking for Insert but receiving Update on new events (#3166)
  • Clients receiving a lot of duplicate messages with SQL scale-out (#2988)

1.2.2

9 years ago

Bugs Fixed

  • ObservableDbOperation looking for Insert but receiving Update on new events (1.x) (#3197)
  • Clients receiving a lot of duplicate messages with SQL scale-out (1.x) (#3196)
  • Port SQL scale-out fix to 1.x (#2977)

2.1.1

9 years ago

Bugs Fixed

  • /start requests deadlock when the PreSendRequestHeaders event is set (#3116)
  • ASP.NET Hub.OnDisconnected not called when .NET client disconnects due to Internet connectivity/process killed (#3115)
  • SignalR 2.1 - JavaScript error: Refused to execute script...because MIME type ('application/json') is not executeable... (#3110)
  • JS Client - No transport can be initialized if /start takes too long to complete (#3104)
  • Unexpected lock reentry in HubConnection.ClearInvocationCallback (#3101)

Breaking Changes

OnDisconnect parameterless overload removed

In 2.1.0 we added an overload of OnDisconnect on PersistentConnection and Hub that takes a boolean indicating whether the disconnect from the client was due to a timeout or not. In making this change we also changed when the existing overload (without the parameter) was called. These changes together resulted in applications not always being called when a client disconnects in a way they were used to expecting. We're resolving this in 2.1.1 by removing the original overload (the parameterless one). OnDisconnect will now always be called when a client disconnects and the flag passed indicates whether it was due to a timeout or not.

2.1.0

9 years ago

Bugs Fixed

  • Make HubCallerContext easier to mock for unit testing a Hub (#3012)
  • SignalR perf counter Connections Reconnected doesn't increase after connection reconnected (#3004)
  • Change when connection connect events/methods are raised (#2997)
  • Remove the reconnect message broadcast intended to suppress disconnect events on other servers in scale-out (#2996)
  • .NET Client Not Compatible With Windows Phone 8.1 (#2968)
  • JavaScript call to refresh update panel inside the hub client method fails and logs the error "TypeError: access to strict mode caller function is censored" in the error console. (#2964)
  • SqlScaleout: Sql server runs out of worker threads (#2958)
  • Fix for issue 'Allow for overriding JS json deserializing function' (#1564) does not work in IE9. (#2945)
  • Server Sent Events: Connection.eventSource is undefined on reconnect (#2925)
  • Error performance counters get incremented twice for each invocation of a missing method. (#2859)
  • signalr/hubs should throw an exception with an invalid hub name (#2705)
  • SignalR v2.0.0-rc1 - get state variable in hub from vb is not working (#2620)

Features

Breaking Changes

OnDisconnect server event semantic change

We've changed what happens when a connection is detected as "gone" on the server. In the past, we made efforts to ensure the server-side disconnect events were raised only once, even if a logical connection had actually been alive on more than one server during its life (in the case of a web farm). This involved sending messages between web nodes in the farm which could lead to undue strain on the backplane, especially when the long polling transport was in use (see #2958).

From this version on, the event will always be raised on any server that has seen a connection and then detects it has gone. We've added a new overload (#2998) so that you can handle the cases when the connection stops due to timeout (like if it moves to another server, or loses network connectivity) or due to the stop method being called on the client (aka a graceful close, e.g. when the user closes the browser).

Be sure to factor this change of behavior into your application design.

IHubConnectionContext changed to IHubConnectionContext<T>

To support the new strongly typed client Hubs (#2449) the interfaces IHubConnectionContext and IHubCallerConnectionContext had to be made generic. To continue using these types with a dynamic client method contract, as in previous versions, just specify the generic type argument as dynamic, e.g.

IHubConnectionContext<dynamic> context = GlobalHost.ConnectionManager.GetHubContext<MyHub>();

2.0.3

10 years ago

Bugs Fixed

  • SB scale-out still re-try forever for un-recoverable error ConfigurationErrorsException (#2948)
  • Service Bus scaleout null refs (#2937)
  • SB scale-out with multiple streams Send failed "Object reference not set to an instance of an object" (#2933)
  • Optimize RedisMessageBus to increase messages throughput (#2905)
  • Race condition when connection stopped and heartbeat running (#2897)
  • SignalR 2.0.3 package dependency Microsoft.Owin etc version (#2890)
  • JS client foreverFrame doesn't fallback to longPolling but stop when start connection the first time passed 'reconnectWindow' period (#2883)
  • .Net Client connection LastActiveAt not re-set when start HeartbeatMonitor (#2878)
  • JS client script error: "Unable to get property 'pingInterval' of undefined or null reference" (#2865)
  • Potential bug setting HubConnection proxy (#2856)
  • JS client connection.transportConnectTimeout will increase value every time connection is started (#2823)
  • SignalR + ServiceBus calls to clients hitting Microsoft.ServiceBus.Messaging.ServerBusyException (#2803)
  • Connection "freezes" when an exception is thrown from delayed expression returned from Hub method (#2800)
  • Strings containing dates are malformed when sending from .Net client to Hub (#2796)
  • WebSocket end of message bit is always on it's own continuation frame (#2777)
  • SignalR - Large Messages are not being passed from the client to server (#2774)
  • SignalR SB scale-out, the first connection returns error "The stream is not open..." (#2767)
  • Context.User is Null on [Authorized] SignalRHub Task OnDisconnected (#2753)

1.2.1

10 years ago

Bugs Fixed

  • on JS client, restarting a connection after disconnected, with longPolling transport it send poll loop without timeout Id (#2840)
  • Restarting the connection after going offline fails in js client (#2824)

2.0.2

10 years ago

Bugs Fixed

  • Change default Service Bus topic count to 5 (#2797)
  • Restarting the connection after going offline fails in js client (#2778)
  • Setting jsonp with cross domain breaks websockets on cors-enabled browsers (#2768)
  • configurePingInterval does not properly check if there's an active pingIntervalId (#2739)
  • .NET Client - Connection Bugs - Release 2.0.0 (#2738)
  • ReflectedHubDescriptorProvider swallows exception (#2712)
  • signalr.exe crashes if a web application references certain assemblies (#2711)
  • Connection sometimes either takes many attempts to connect or dies immediately. (#2704)
  • JS Client - Hub Invocation callbacks are not cleared on failed ajax sends. (#2693)
  • Fix to protect against potential JArray foreach issue (#2691)
  • An item with the same key has already been added. (#2687)
  • Connection.Start in the .NET client re-initializes state variables regardless of the connection status (#2675)
  • awaiting a HubProxy.Invoke method makes the HubConnection.Dispose take 30 seconds to dispose (#2653)
  • Safari (IOS and osx) crashes when connected to websockets (#2650)
  • SB scale-out: with invalid format SB connection string, request for signalr/hubs pending forever (#2602)
  • Duplicate call to onReceived when a message is emitted during OnConnected (#2595)
  • WebSockets can attempt to send when in the "reconnecting" state, resulting in an exception. (#2582)
  • WebSockets transport pings the wrong server URL. (#2569)
  • Ping requests from JS client should not add connectionData query string value (#2568)
  • Protocol-relative connection url improperly detected as same-origin (#2557)
  • In JS client disconnected event connection state is still connected (#2554)
  • in ServiceBus scale-out, exception for unresolved endpoint is not handled and it will crash the process (#2542)
  • When ServiceBus scale-out use invalid connection string, it will crash the process (#2541)
  • calling connection.Stop() in a callback causes a deadlock on the client side (#2535)
  • C# Client - Always check for valid reconnect window before making a request in clients (#2528)
  • JS Client - Always check for valid reconnect window before making a request in clients (#2484)
  • Microsoft Platform Ready Test Tool complains that the dlls do not have a valid Product Name property (#2471)
  • Flow network response information to "parse error" use cases. (#2469)
  • Use unique connection groups in .NET 4 client per DefaultHttpClient instance (#2452)
  • Swallow some exceptions on the server so they don't get logged (#2450)
  • Scaleout SQL Server should emit error trace when failing to connect (#2441)
  • Unobserved exception in .NET client (#2405)
  • JS client attempts to fallback to other transports if WebSockets is exclusively specified even if server doesn't support WebSockets (#2294)
  • With ServiceBus scale-out, when call UseServiceBus at app_start return error like time out for connection, then all clients signalr/hubs request will return that error (#2091)
  • SCRIPT70: Permission denied in IE on reconnect (#1963)

1.2.0

10 years ago

Features

  • Allow for overriding JS json deserializing function (#2654)

Bugs Fixed

  • SignalR ServiceBus 1.2 package dependency WindowsAzure.ServiceBus should not >=2.0.1 (#2761)
  • JS Client - Hub Invocation callbacks are not cleared on failed ajax sends. (#2694)
  • Dispatch connection message received callbacks to new thread in .NET client (#2684)
  • Connection.Start in the .NET client re-initializes state variables regardless of the connection status (#2683)
  • Protocol-relative connection url improperly detected as same-origin (#2674)
  • Send an init payload in websockets (#2637)
  • JS client in disconnected event connection state is still connected (#2634)
  • C# Client - Always check for valid reconnect window before making a request in clients (#2629)
  • SB scale-out: with invalid format SB connection string, request for signalr/hubs pending forever (#2628)
  • start-stop-start long polling results on a stream of poll requests (#2601)
  • WebSockets transport pings the wrong server URL. (#2570)
  • When change from using scale-out to not use scale-out, cursors value could change unexpectedly which cause group not working anymore (#2531)
  • With ServiceBus scale-out, when call UseServiceBus at app_start return error like time out for connection, then all clients signalr/hubs request will return that error (#2524)
  • Swallow some exceptions on the server so they don't get logged (#2522)
  • Use unique connection groups in .NET 4 client per DefaultHttpClient instance (#2521)
  • Microsoft Platform Ready Test Tool complains that the dlls do not have a valid Product Name property (#2520)
  • JS client immediately start->stop->start connection, the first deferred.done is also triggered (#2519)
  • Scaleout - ServiceBus: No tracing with incorrect connection string (#2518)
  • Closing Firefox/Opera tab does not trigger OnDisconnected event (#2517)
  • Refactor websocket handler to reduce errors (#2515)
  • Improve logging to show when no hub subscriptions are made. (#2514)
  • Always check for valid reconnect window before making a request in clients (#2513)
  • Set the crossdomain flag for cors ajax request (#2512)
  • JS client with $.ajaxSetup userDefined setting e.g. { processData: false } which can cause SignalR ajaxSend work unexpectedly (#2511)
  • Reconnect does not work with Chrome/serverSentEvents transport when server disappears/reappears (#2509)
  • SCRIPT70: Permission denied in IE on reconnect (#2508)
  • The user identity cannot change during an active SignalR connection (#2507)
  • Hub calls should fail if request's response is 3xx redirect (#2506)
  • Update Header in the .Net client even if connection is connected (#2504)
  • Failing to connect when IIS enables both Anonymous and Basic (#2503)
  • Don't capture the execution context when registering cancellation token callbacks. (#2502)
  • JavaScript Client does not cause OnReconnected event to fire when using longPolling transport (#2501)
  • in JS client when transport fallback OnConnected event in server could get called 2 times for same connection id (#2500)
  • Use unique connection groups in .NET 4 client for long running and short running requests (#2499)
  • when server appdomain restart, client reconnect with previous group token in querystring, sometimes the group is not added in server (#2498)
  • WebSocket message limit should only apply to server logic (#2495)
  • JS client foreverFrame run into script error : Unable to get property 'contentWindow' of undefined or null reference (#2494)
  • longPolling does not trigger start().fail when authorization fails (#2493)
  • SignalR intermittently stalls (MessageBroker workers all busy) (#2492)
  • Latest firefox not firing clean disconnect on browser refresh (#2489)
  • Have PingInterval stop the connection on 401's and 403's. (#2488)
  • Improve logging on the JS client (#2487)
  • JS client fails in IE8 due to use of "undefined" keyword (#2486)
  • Bug: Persistent Connection fails with IIS8 on Android Stock Browser (#2485)
  • Memory leak in SignalR 1.1 on .NET 4.0 on self host (#2413)

1.1.4

10 years ago

Important Security Fix

Fix for MS13-103

Bugs Fixed

  • Server Sent Events transport throws an exception in JS client when trying to log (#2538)
  • Add .NET servicing attribute to all assemblies (#2516)
  • Performance problem using long polling with many clients (#2505)

Commits

  • Made some changes to better abstract BufferTextWriter. (33fa85a6af)

2.0.1

10 years ago

Important Security Fix

Fix for MS13-103

Commits

  • Made some changes to better abstract BufferTextWriter. (bc9412bcab)