Skip to content

Commit 0cfb263

Browse files
authored
fix: avoid setting User-Agent header in .NET Framework (#25)
* avoid setting User-Agent header in .NET Framework * exclude net462 example project * revert wrong change * remove NET462 Console App example * add reference
1 parent 3dd26ec commit 0cfb263

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

src/FeatBit.ServerSdk/Transport/WebSocketTransport.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,16 @@ public async Task StartAsync(
9191
private static async Task<WebSocket> DefaultWebSocketFactory(Uri uri, CancellationToken cancellationToken)
9292
{
9393
var webSocket = new ClientWebSocket();
94+
95+
// reference: https://github.com/dotnet/aspnetcore/blob/main/src/SignalR/clients/csharp/Http.Connections.Client/src/Internal/WebSocketsTransport.cs#L98-L105
96+
// Full Framework will throw when trying to set the User-Agent header
97+
// So avoid setting it in netstandard2.0 and only set it in netstandard2.1 and higher
98+
#if !NETSTANDARD2_0 && !NETFRAMEWORK
9499
webSocket.Options.SetRequestHeader("User-Agent", HttpConstants.UserAgent);
100+
#else
101+
// Set an alternative user agent header on Full framework
102+
webSocket.Options.SetRequestHeader("X-FeatBit-User-Agent", HttpConstants.UserAgent);
103+
#endif
95104

96105
try
97106
{

0 commit comments

Comments
 (0)