All notable changes to the LaunchDarkly's EventSource implementation for C# will be documented in this file. This project adheres to Semantic Versioning.
- The
EventSource
now implementsIDisposable
. CallingDispose()
has the same effect as callingClose()
.
- Under some circumstances, a
CancellationTokenSource
might not be disposed of after making an HTTP request, which could cause a timer object to be leaked.
- The assemblies in this package now have Authenticode signatures. The release note for 3.2.1 was an error; that release did not include signatures.
- The console applications for manual testing have been removed (because the unit tests now include full end-to-end tests against a stub HTTP server).
- The published assemblies are now digitally signed as well as strong-named. Also, they are now built in Release mode and do not contain debug information.
- Previously, the delay before reconnect attempts would increase exponentially only if the previous connection could not be made at all or returned an HTTP error; if it received an HTTP 200 status, the delay would be reset to the minimum even if the connection then immediately failed. Now, the new configuration property
BackoffResetThreshold
(default: 1 minute) specifies the length of time that a connection must stay active in order for the reconnect delay to be reset. (#37)
-
Fixed an unobserved exception that could occur following a stream timeout, which could cause a crash in .NET 4.0.
-
A
NullReferenceException
could sometimes be logged if a stream connection failed. (#24)
Duplicate of 3.1.4, created due to a problem in the release process.
- Fixed a bug that prevented the event source from reconnecting to the stream if it received an HTTP error status from the server (as opposed to simply losing the connection).
- The reconnection attempt counter is no longer shared among all EventSource instances. Previously, if you connected to more than one stream, all but the first would behave as if they were reconnecting and would have a backoff delay.
- The SDK was referencing some system assemblies via
<PackageReference>
, which could cause dependency conflicts. These have been changed to framework<Reference>
s. A redundant reference toSystem.Runtime
was removed.
- If the stream connection fails, there should be an increasing backoff interval before each reconnect attempt. Previously, it would log a message about waiting some number of milliseconds, but then not actually wait.
- Removed an unused dependency on Newtonsoft.Json.
- The new class
ConfigurationBuilder
provides a validated fluent builder pattern forConfiguration
instances. - The HTTP method and request body can now be specified in
ConfigurationBuilder
or in theConfiguration
constructor. The default is still to useGET
and not send a request body.
- Logging is now done via
Common.Logging
.
EventSource
now uses the interfaceIEventSource
.
- Downgrade Microsoft.Extensions.Logging to 1.0.2 to reduce dependencies brought in when building against .NET Framework.
- Exposed
EventSourceServiceCancelledException
as a public class.
- Removed unused and transitive dependencies.
- Added a reference to the Apache 2.0 license in
LaunchDarkly.EventSource.csproj
- Improved logging. Thanks @JeffAshton!
- Move from .NET Standard 1.6 to 1.4.
- Exposed the
ExponentialBackoffWithDecorrelation
as a public class. This class may be used to calculate exponential backoff with jitter.
- Reconnects to EventSource are now handled inline, rather than using Polly for managing retry policies.
- Removed the
closeOnEndOfStream
property.
ConnectToEventSourceAsync
now takes in a new boolean parameter,closeOnEndOfStream
, which, if true, will close the EventSource connection when the end of the stream is reached.
- Fixed a bug causing causing read timeouts to never propogate.
- Signed EventSource Assembly.
- Change dependency on Polly to Polly-Signed.
Hello world!