Skip to content

Commit 6d89e6c

Browse files
author
Elad Zelingher
committed
Minor changes
1 parent 39549c8 commit 6d89e6c

File tree

2 files changed

+22
-13
lines changed

2 files changed

+22
-13
lines changed

src/net45/Extensions/WampSharp.AspNet.WebSockets.Server/AspNetWebsocketTransport.cs

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using System.Collections.Generic;
1+
using System;
2+
using System.Collections.Generic;
23
using System.Linq;
34
using System.Threading.Tasks;
45
using System.Web;
@@ -13,13 +14,14 @@
1314
namespace WampSharp.AspNet.WebSockets.Server
1415
{
1516
/// <exclude />
16-
public sealed class AspNetWebsocketTransport : WebSocketTransport<WebSocketData>
17+
public sealed class AspNetWebSocketTransport : WebSocketTransport<WebSocketData>
1718
{
1819
private readonly string mUrl;
20+
private readonly object mLock = new object();
1921
private Route mRoute;
2022

2123
/// <exclude />
22-
public AspNetWebsocketTransport(string url,
24+
public AspNetWebSocketTransport(string url,
2325
ICookieAuthenticatorFactory authenticatorFactory = null)
2426
: base(authenticatorFactory)
2527
{
@@ -29,9 +31,13 @@ public AspNetWebsocketTransport(string url,
2931
/// <exclude />
3032
public override void Dispose()
3133
{
32-
if (mRoute != null)
34+
lock (mLock)
3335
{
34-
RouteTable.Routes.Remove(mRoute);
36+
if (mRoute != null)
37+
{
38+
RouteTable.Routes.Remove(mRoute);
39+
mRoute = null;
40+
}
3541
}
3642
}
3743

@@ -67,9 +73,12 @@ protected override IWampConnection<TMessage> CreateTextConnection<TMessage>
6773
/// <exclude />
6874
public override void Open()
6975
{
70-
// Side effects, here we come :)
71-
mRoute = new Route(mUrl, new RouteHandler(this));
72-
RouteTable.Routes.Add(mUrl, mRoute);
76+
lock (mLock)
77+
{
78+
// Side effects, here we come :)
79+
mRoute = new Route(mUrl, new RouteHandler(this));
80+
RouteTable.Routes.Add(mUrl, mRoute);
81+
}
7382
}
7483

7584
private void ProcessRequest(HttpContext context)
@@ -109,16 +118,16 @@ protected override void OpenConnection<TMessage>(WebSocketData original, IWampCo
109118
{
110119
WebSocketWrapperConnection<TMessage> casted = connection as WebSocketWrapperConnection<TMessage>;
111120

112-
Task task = Task.Run(casted.RunAsync);
121+
Task task = Task.Run((Func<Task>) casted.RunAsync);
113122

114123
original.ReadTask = task;
115124
}
116125

117-
public class RouteHandler : IRouteHandler, IHttpHandler
126+
private class RouteHandler : IRouteHandler, IHttpHandler
118127
{
119-
private readonly AspNetWebsocketTransport mParent;
128+
private readonly AspNetWebSocketTransport mParent;
120129

121-
public RouteHandler(AspNetWebsocketTransport parent)
130+
public RouteHandler(AspNetWebSocketTransport parent)
122131
{
123132
mParent = parent;
124133
}

src/net45/Extensions/WampSharp.AspNet.WebSockets.Server/WampSharp.AspNet.WebSockets.Server.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
</ItemGroup>
4444
<ItemGroup>
4545
<Compile Include="AspNetCookieProvider.cs" />
46-
<Compile Include="AspNetWebsocketTransport.cs" />
46+
<Compile Include="AspNetWebSocketTransport.cs" />
4747
<Compile Include="Properties\AssemblyInfo.cs" />
4848
<Compile Include="WebSocketData.cs" />
4949
</ItemGroup>

0 commit comments

Comments
 (0)