Skip to content

Commit e6f881d

Browse files
Gencebay DemirGencebay Demir
authored andcommitted
Handshake transport registration - TryAdd
1 parent 8ace84e commit e6f881d

File tree

4 files changed

+27
-2
lines changed

4 files changed

+27
-2
lines changed

src/NetCoreStack.WebSockets/DefaultHandshakeStateTransport.cs renamed to src/NetCoreStack.WebSockets/Internal/DefaultHandshakeStateTransport.cs

File renamed without changes.

src/NetCoreStack.WebSockets/SocketServiceCollectionExtensions.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using Microsoft.Extensions.DependencyInjection;
2+
using Microsoft.Extensions.DependencyInjection.Extensions;
23
using NetCoreStack.WebSockets.Common;
34
using NetCoreStack.WebSockets.Internal;
45
using System;
@@ -14,7 +15,7 @@ public static void AddNativeWebSockets(this IServiceCollection services)
1415
throw new ArgumentNullException(nameof(services));
1516
}
1617

17-
services.AddTransient<IHandshakeStateTransport, DefaultHandshakeStateTransport>();
18+
services.TryAdd(ServiceDescriptor.Transient<IHandshakeStateTransport, DefaultHandshakeStateTransport>());
1819
services.AddSingleton<IConnectionManager, ConnectionManager>();
1920
}
2021
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
using NetCoreStack.WebSockets.Common;
2+
using System.Threading.Tasks;
3+
4+
namespace ServerTestApp
5+
{
6+
public class MyHandshakeStateTransport : IHandshakeStateTransport
7+
{
8+
public Task<object> GetStateAsync()
9+
{
10+
return Task.FromResult<object>(0);
11+
}
12+
}
13+
14+
public class CustomHandshakeStateTransport : IHandshakeStateTransport
15+
{
16+
public Task<object> GetStateAsync()
17+
{
18+
return Task.FromResult<object>(0);
19+
}
20+
}
21+
}

test/ServerTestApp/Startup.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
using Microsoft.Extensions.DependencyInjection;
55
using Microsoft.Extensions.Logging;
66
using NetCoreStack.WebSockets;
7+
using NetCoreStack.WebSockets.Common;
78
using Swashbuckle.Swagger.Model;
89
using System.IO;
910

@@ -38,9 +39,11 @@ public void ConfigureServices(IServiceCollection services)
3839
c.DescribeAllEnumsAsStrings();
3940
});
4041

42+
services.AddTransient<IHandshakeStateTransport, MyHandshakeStateTransport>();
43+
4144
// Add Net Core Stack socket services.
4245
services.AddNativeWebSockets();
43-
46+
4447
// Add framework services.
4548
services.AddMvc();
4649
}

0 commit comments

Comments
 (0)