NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
NuGet · #597 most downloaded on NuGet
LaunchDarkly Server-Sent Events client
Last release 23 days ago
15 Sep 2026
Release timing varies
gaps range from 2 weeks to 1.4 years
Nearly every release is documented
notes for 39 of 39 stable releases
8 versions withdrawn
withdrawn after publishing
127 years old
47 releases · first in 1900
temporary retry-delay bounds and SSE retry: field handling
This PR was generated with Release Please. See documentation.
One column per quarter.
increase SSE read buffer to 8192 bytes to avoid Android streaming stall
This PR was generated with Release Please. See documentation.
fix dll_name for Authenticode signing in publish workflow
adds headers to EventSourceServiceUnsuccessfulResponseException
Avoid showing authorization value in exception
Report event source headers on open.
Update minimum LaunchDarkly.Logging version to 2.0.0 to share the same min version as SDK implementations.
LaunchDarkly.Logging version to 2.0.0 to share the same min version as SDK implementations.Relaxed dependency constraint to allow use of LaunchDarkly.Logging 1.x or 2.x.
LaunchDarkly.Logging 1.x or 2.x.Removed EOL target framework .NET Framework 4.5.2. Lowest compatible platform versions are now .NET Core 3.1, .NET Framework 4.6.2, .NET 6.0, and .NET
ConfigurationBuilder.DefaultEncoding (no longer relevant since the encoding must be UTF-8).ConfigurationBuilder.HttpRequestModifier , for making custom modifications to outgoing HTTP requests. (Thanks, acquleo !)
ConfigurationBuilder.HttpRequestModifier, for making custom modifications to outgoing HTTP requests. (Thanks, acquleo!)Updated LaunchDarkly.Logging dependency to 1.0.1, to match the version used in the latest server-side .NET SDK release. Since .NET Framework is strict
LaunchDarkly.Logging dependency to 1.0.1, to match the version used in the latest server-side .NET SDK release. Since .NET Framework is stricter about dependency versions than .NET Core, it is desirable to keep transitive dependency versions in sync in all packages used by the SDK.Fixed a memory leak in which a CancellationTokenSource instance was not disposed of after reading from the stream. This bug was introduced in the 4.0.
CancellationTokenSource instance was not disposed of after reading from the stream. This bug was introduced in the 4.0.0 release. (#77)(The 4.1.0 release was an accidental duplicate of 4.0.0 and did not include these changes.)
(The 4.1.0 release was an accidental duplicate of 4.0.0 and did not include these changes.)
ConfigurationBuilder.ResponseStartTimeout-- added as a more accurately named replacement for ConnectionTimeout.ConfigurationBuilder.ConnectionTimeout_This release was an accidental duplicate of 4.0.0. Please use 4.1.1 instead._
This release was an accidental duplicate of 4.0.0. Please use 4.1.1 instead.
Removed all types and methods that were marked as deprecated/obsolete in the last 3.x version.
Starting with this version, the API documentation for the latest release is viewable at https://launchdarkly.github.io/dotnet-eventsource.
The 4.x major version of LaunchDarkly.EventSource will be used in the upcoming major version releases of LaunchDarkly's .NET-based SDKs. This release streamlines the API, updates platform compatibility, and improves performance.
EventSource.Restart: this method allows the caller to trigger a connection restart even if there was not an error on the stream.MessageEvent.Name: previously, the event name was only available as a property of MessageReceivedEventArgs.ConfigurationBuilder.DefaultEncoding: sets the character encoding to use for parsing the stream data if the server did not specify an encoding in its Content-Type.ConfigurationBuilder.PreferDataAsUtf8Bytes: an optional mode in which EventSource will read the data: property of events as a raw UTF-8 byte array (assuming the stream encoding is UTF-8) to avoid unnecessarily allocating a UTF-16 string. This is meant as an optimization for applications that will be processing the data with a UTF-8-based API such as System.Text.Json.EventSource(Uri) constructor for cases where you do not need any other configuration options.LaunchDarkly.Logging facade which is used by LaunchDarkly .NET-based SDKs, instead of Common.Logging.ConfigurationBuilder methods no longer throw any exceptions, except for one case: passing null for the stream URI. In all cases where a property has a maximum and/or minimum value, if you try to set a value outside that range it will simply be changed to the closest valid value. If two properties do not make sense to use together (such as a non-null HttpClient and a non-null HttpMessageHandler), one will simply override the other as described in the API documentation.ConfigurationBuilder.DelayRetryDuration is named to InitialRetryDelay, which more accurately describes its meaning.ConfigurationBuilder.MessageHandler is renamed to HttpMessageHandler, since that's the name of its type (also, "message" has other meanings in this API).Configuration.HttpContentFactory is now simply Func<HttpContent> rather than using a custom delegate type.Dictionary of headers to ConfigurationBuilder.RequestHeaders, it will now be copied. Previously the configuration retained a reference to the original Dictionary, which could cause problems if it was later modified.EventSource now implements the stream read timeout in a way that uses the task scheduler more efficiently. Previously, it executed an additional task for each read with Task.Delay; now, it uses a timed cancellation token.ConfigurationBuilder.BackoffResetThreshold had no effect; the default value was being used regardless of what you set it to.EventSource was using a case-insensitive comparison to recognize field names like event and data. The SSE specification states that field name "must be compared literally, with no case folding performed," so a field name like EVENT is invalid.Configuration no longer has a public constructor. Instances must now be created with Configuration.Builder.ExponentialBackoffWithDecorrelation is no longer public.You can now tell EventSource to use an HttpClient instance that you provide by calling ConfigurationBuilder.HttpClient. (Thanks, thorstenfleischmann!)
HttpClient instance that you provide by calling ConfigurationBuilder.HttpClient. (Thanks, thorstenfleischmann!)The package now has a specific target for .NET Standard 2.0, in addition to the previous targets of .NET Standard 1.4 and .NET Framework 4.5. There is
If a stream connection is restarted, EventSource should send a Last-Event-Id header if it previously received an event with an id field. (Thanks, frac
EventSource should send a Last-Event-Id header if it previously received an event with an id field. (Thanks, fracek!)If you don't explicitly provide an HttpMessageHandler in the configuration, EventSource will now use the default HttpClient constructor; previously, i
HttpMessageHandler in the configuration, EventSource will now use the default HttpClient constructor; previously, it would create an instance of the standard .NET HttpMessageHandler implementation and tell the HttpClient to use that. In .NET Framework and .NET Standard, this makes no difference, but in Xamarin, calling the default HttpClient constructor may allow it to use a better HTTP implementation based on native APIs.Nothing published for this version
Nothing published for this version
Nothing published for this version
The EventSource now implements IDisposable. Calling Dispose() has the same effect as calling Close().
EventSource now implements IDisposable. Calling Dispose() has the same effect as calling Close().CancellationTokenSource might not be disposed of after making an HTTP request, which could cause a timer object to be leaked.Nothing published for this version
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 informati
Previously, the delay before reconnect attempts would increase exponentially only if the previous connection could not be made at all or returned an H
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.
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
The reconnection attempt counter is no longer shared among all EventSource instances. Previously, if you connected to more than one stream, all but th
The SDK was referencing some system assemblies via , which could cause dependency conflicts. These have been changed to framework s. A redundant refer
<PackageReference>, which could cause dependency conflicts. These have been changed to framework <Reference>s. A redundant reference to System.Runtime was removed.Removed an unused dependency on Newtonsoft.Json.
The new class ConfigurationBuilder provides a validated fluent builder pattern for Configuration instances.
ConfigurationBuilder provides a validated fluent builder pattern for Configuration instances.ConfigurationBuilder or in the Configuration constructor. The default is still to use GET and not send a request body.Logging is now done via Common.Logging.
Common.Logging.EventSource now uses the interface IEventSource.Nothing published for this version
Nothing published for this version
Nothing published for this version
Downgrade Microsoft.Extensions.Logging to 1.0.2 to reduce dependencies brought in when building against .NET Framework.
Exposed EventSourceServiceCancelledException as a public class.
EventSourceServiceCancelledException as a public class.LaunchDarkly.EventSource.csprojNothing published for this version
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.
ExponentialBackoffWithDecorrelation as a public class. This class may be used to calculate exponential backoff with jitter.Removed the closeOnEndOfStream property.
closeOnEndOfStream property.ConnectToEventSourceAsync now takes in a new boolean parameter, closeOnEndOfStream, which, if true, will close the EventSource connection when the end
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.Change dependency on Polly to Polly-Signed.
Hello world!
Hello world!
Your coding agent can read these notes before it upgrades. Set up the MCP server →