diff --git a/src/Microsoft.AspNet.WebSockets.Server/WebSocketAcceptContext.cs b/src/Microsoft.AspNet.WebSockets.Server/ExtendedWebSocketAcceptContext.cs similarity index 78% rename from src/Microsoft.AspNet.WebSockets.Server/WebSocketAcceptContext.cs rename to src/Microsoft.AspNet.WebSockets.Server/ExtendedWebSocketAcceptContext.cs index d1227d41bd..e0377b7d4b 100644 --- a/src/Microsoft.AspNet.WebSockets.Server/WebSocketAcceptContext.cs +++ b/src/Microsoft.AspNet.WebSockets.Server/ExtendedWebSocketAcceptContext.cs @@ -6,9 +6,9 @@ using Microsoft.AspNet.Http; namespace Microsoft.AspNet.WebSockets.Server { - public class WebSocketAcceptContext : IWebSocketAcceptContext + public class ExtendedWebSocketAcceptContext : WebSocketAcceptContext { - public string SubProtocol { get; set; } + public override string SubProtocol { get; set; } public int? ReceiveBufferSize { get; set; } public TimeSpan? KeepAliveInterval { get; set; } diff --git a/src/Microsoft.AspNet.WebSockets.Server/WebSocketMiddleware.cs b/src/Microsoft.AspNet.WebSockets.Server/WebSocketMiddleware.cs index d03a183a72..0dc597bf0f 100644 --- a/src/Microsoft.AspNet.WebSockets.Server/WebSocketMiddleware.cs +++ b/src/Microsoft.AspNet.WebSockets.Server/WebSocketMiddleware.cs @@ -73,13 +73,13 @@ namespace Microsoft.AspNet.WebSockets.Server } } - public async Task AcceptAsync(IWebSocketAcceptContext acceptContext) + public async Task AcceptAsync(WebSocketAcceptContext acceptContext) { if (!IsWebSocketRequest) { throw new InvalidOperationException("Not a WebSocket request."); // TODO: LOC } - + string subProtocol = null; if (acceptContext != null) { @@ -88,7 +88,7 @@ namespace Microsoft.AspNet.WebSockets.Server TimeSpan keepAliveInterval = _options.KeepAliveInterval; int receiveBufferSize = _options.ReceiveBufferSize; - var advancedAcceptContext = acceptContext as WebSocketAcceptContext; + var advancedAcceptContext = acceptContext as ExtendedWebSocketAcceptContext; if (advancedAcceptContext != null) { if (advancedAcceptContext.ReceiveBufferSize.HasValue) diff --git a/src/Microsoft.AspNet.WebSockets.Server/project.json b/src/Microsoft.AspNet.WebSockets.Server/project.json index 629e90d389..51fab63e5e 100644 --- a/src/Microsoft.AspNet.WebSockets.Server/project.json +++ b/src/Microsoft.AspNet.WebSockets.Server/project.json @@ -3,7 +3,6 @@ "description": "ASP.NET 5 web socket middleware for use on top of opaque servers.", "dependencies": { "Microsoft.AspNet.Http": "1.0.0-*", - "Microsoft.AspNet.Http.Interfaces": { "version": "1.0.0-*", "type": "build" }, "Microsoft.AspNet.WebSockets.Protocol": "1.0.0-*" }, "frameworks": { diff --git a/test/AutobahnTestServer/Startup.cs b/test/AutobahnTestServer/Startup.cs index 3a5692aadf..34ff549764 100644 --- a/test/AutobahnTestServer/Startup.cs +++ b/test/AutobahnTestServer/Startup.cs @@ -25,10 +25,10 @@ namespace AutobahnTestServer managedWebSocketsApp.Use(async (context, next) => { - if (context.IsWebSocketRequest) + if (context.WebSockets.IsWebSocketRequest) { Console.WriteLine("Echo: " + context.Request.Path); - var webSocket = await context.AcceptWebSocketAsync(); + var webSocket = await context.WebSockets.AcceptWebSocketAsync(); await Echo(webSocket); return; } @@ -40,10 +40,10 @@ namespace AutobahnTestServer { nativeWebSocketsApp.Use(async (context, next) => { - if (context.IsWebSocketRequest) + if (context.WebSockets.IsWebSocketRequest) { Console.WriteLine("Echo: " + context.Request.Path); - var webSocket = await context.AcceptWebSocketAsync(); + var webSocket = await context.WebSockets.AcceptWebSocketAsync(); await Echo(webSocket); return; } diff --git a/test/Microsoft.AspNet.WebSockets.Client.Test/WebSocketClientTests.cs b/test/Microsoft.AspNet.WebSockets.Client.Test/WebSocketClientTests.cs index 2b5bd7d5de..eecb1adf50 100644 --- a/test/Microsoft.AspNet.WebSockets.Client.Test/WebSocketClientTests.cs +++ b/test/Microsoft.AspNet.WebSockets.Client.Test/WebSocketClientTests.cs @@ -19,8 +19,8 @@ namespace Microsoft.AspNet.WebSockets.Client.Test { using (var server = KestrelWebSocketHelpers.CreateServer(async context => { - Assert.True(context.IsWebSocketRequest); - var webSocket = await context.AcceptWebSocketAsync(); + Assert.True(context.WebSockets.IsWebSocketRequest); + var webSocket = await context.WebSockets.AcceptWebSocketAsync(); })) { var client = new WebSocketClient(); @@ -35,9 +35,9 @@ namespace Microsoft.AspNet.WebSockets.Client.Test { using (var server = KestrelWebSocketHelpers.CreateServer(async context => { - Assert.True(context.IsWebSocketRequest); + Assert.True(context.WebSockets.IsWebSocketRequest); Assert.Equal("alpha, bravo, charlie", context.Request.Headers["Sec-WebSocket-Protocol"]); - var webSocket = await context.AcceptWebSocketAsync("Bravo"); + var webSocket = await context.WebSockets.AcceptWebSocketAsync("Bravo"); })) { var client = new WebSocketClient(); @@ -56,8 +56,8 @@ namespace Microsoft.AspNet.WebSockets.Client.Test { using (var server = KestrelWebSocketHelpers.CreateServer(async context => { - Assert.True(context.IsWebSocketRequest); - var webSocket = await context.AcceptWebSocketAsync(); + Assert.True(context.WebSockets.IsWebSocketRequest); + var webSocket = await context.WebSockets.AcceptWebSocketAsync(); var serverBuffer = new byte[0]; var result = await webSocket.ReceiveAsync(new ArraySegment(serverBuffer), CancellationToken.None); @@ -81,8 +81,8 @@ namespace Microsoft.AspNet.WebSockets.Client.Test var orriginalData = Encoding.UTF8.GetBytes("Hello World"); using (var server = KestrelWebSocketHelpers.CreateServer(async context => { - Assert.True(context.IsWebSocketRequest); - var webSocket = await context.AcceptWebSocketAsync(); + Assert.True(context.WebSockets.IsWebSocketRequest); + var webSocket = await context.WebSockets.AcceptWebSocketAsync(); var serverBuffer = new byte[orriginalData.Length]; var result = await webSocket.ReceiveAsync(new ArraySegment(serverBuffer), CancellationToken.None); @@ -106,8 +106,8 @@ namespace Microsoft.AspNet.WebSockets.Client.Test var orriginalData = Encoding.UTF8.GetBytes(new string('a', 130)); using (var server = KestrelWebSocketHelpers.CreateServer(async context => { - Assert.True(context.IsWebSocketRequest); - var webSocket = await context.AcceptWebSocketAsync(); + Assert.True(context.WebSockets.IsWebSocketRequest); + var webSocket = await context.WebSockets.AcceptWebSocketAsync(); var serverBuffer = new byte[orriginalData.Length]; var result = await webSocket.ReceiveAsync(new ArraySegment(serverBuffer), CancellationToken.None); @@ -131,8 +131,8 @@ namespace Microsoft.AspNet.WebSockets.Client.Test var orriginalData = Encoding.UTF8.GetBytes(new string('a', 0x1FFFF)); using (var server = KestrelWebSocketHelpers.CreateServer(async context => { - Assert.True(context.IsWebSocketRequest); - var webSocket = await context.AcceptWebSocketAsync(); + Assert.True(context.WebSockets.IsWebSocketRequest); + var webSocket = await context.WebSockets.AcceptWebSocketAsync(); var serverBuffer = new byte[orriginalData.Length]; var result = await webSocket.ReceiveAsync(new ArraySegment(serverBuffer), CancellationToken.None); @@ -168,8 +168,8 @@ namespace Microsoft.AspNet.WebSockets.Client.Test var orriginalData = Encoding.UTF8.GetBytes("Hello World"); using (var server = KestrelWebSocketHelpers.CreateServer(async context => { - Assert.True(context.IsWebSocketRequest); - var webSocket = await context.AcceptWebSocketAsync(); + Assert.True(context.WebSockets.IsWebSocketRequest); + var webSocket = await context.WebSockets.AcceptWebSocketAsync(); var serverBuffer = new byte[orriginalData.Length]; var result = await webSocket.ReceiveAsync(new ArraySegment(serverBuffer), CancellationToken.None); @@ -211,8 +211,8 @@ namespace Microsoft.AspNet.WebSockets.Client.Test var orriginalData = Encoding.UTF8.GetBytes("Hello World"); using (var server = KestrelWebSocketHelpers.CreateServer(async context => { - Assert.True(context.IsWebSocketRequest); - var webSocket = await context.AcceptWebSocketAsync(); + Assert.True(context.WebSockets.IsWebSocketRequest); + var webSocket = await context.WebSockets.AcceptWebSocketAsync(); await webSocket.SendAsync(new ArraySegment(orriginalData), WebSocketMessageType.Binary, true, CancellationToken.None); })) @@ -235,8 +235,8 @@ namespace Microsoft.AspNet.WebSockets.Client.Test var orriginalData = Encoding.UTF8.GetBytes("Hello World"); using (var server = KestrelWebSocketHelpers.CreateServer(async context => { - Assert.True(context.IsWebSocketRequest); - var webSocket = await context.AcceptWebSocketAsync(); + Assert.True(context.WebSockets.IsWebSocketRequest); + var webSocket = await context.WebSockets.AcceptWebSocketAsync(); await webSocket.SendAsync(new ArraySegment(orriginalData), WebSocketMessageType.Binary, true, CancellationToken.None); })) @@ -260,8 +260,8 @@ namespace Microsoft.AspNet.WebSockets.Client.Test var orriginalData = Encoding.UTF8.GetBytes(new string('a', 130)); using (var server = KestrelWebSocketHelpers.CreateServer(async context => { - Assert.True(context.IsWebSocketRequest); - var webSocket = await context.AcceptWebSocketAsync(); + Assert.True(context.WebSockets.IsWebSocketRequest); + var webSocket = await context.WebSockets.AcceptWebSocketAsync(); await webSocket.SendAsync(new ArraySegment(orriginalData), WebSocketMessageType.Binary, true, CancellationToken.None); })) @@ -285,8 +285,8 @@ namespace Microsoft.AspNet.WebSockets.Client.Test var orriginalData = Encoding.UTF8.GetBytes(new string('a', 0x1FFFF)); using (var server = KestrelWebSocketHelpers.CreateServer(async context => { - Assert.True(context.IsWebSocketRequest); - var webSocket = await context.AcceptWebSocketAsync(); + Assert.True(context.WebSockets.IsWebSocketRequest); + var webSocket = await context.WebSockets.AcceptWebSocketAsync(); await webSocket.SendAsync(new ArraySegment(orriginalData), WebSocketMessageType.Binary, true, CancellationToken.None); })) @@ -318,8 +318,8 @@ namespace Microsoft.AspNet.WebSockets.Client.Test var orriginalData = Encoding.UTF8.GetBytes(new string('a', 0x1FFFF)); using (var server = KestrelWebSocketHelpers.CreateServer(async context => { - Assert.True(context.IsWebSocketRequest); - var webSocket = await context.AcceptWebSocketAsync(); + Assert.True(context.WebSockets.IsWebSocketRequest); + var webSocket = await context.WebSockets.AcceptWebSocketAsync(); await webSocket.SendAsync(new ArraySegment(orriginalData), WebSocketMessageType.Binary, true, CancellationToken.None); })) @@ -343,8 +343,8 @@ namespace Microsoft.AspNet.WebSockets.Client.Test var orriginalData = Encoding.UTF8.GetBytes("Hello World"); using (var server = KestrelWebSocketHelpers.CreateServer(async context => { - Assert.True(context.IsWebSocketRequest); - var webSocket = await context.AcceptWebSocketAsync(); + Assert.True(context.WebSockets.IsWebSocketRequest); + var webSocket = await context.WebSockets.AcceptWebSocketAsync(); await webSocket.SendAsync(new ArraySegment(orriginalData, 0, 2), WebSocketMessageType.Binary, false, CancellationToken.None); await webSocket.SendAsync(new ArraySegment(orriginalData, 2, 2), WebSocketMessageType.Binary, false, CancellationToken.None); @@ -386,8 +386,8 @@ namespace Microsoft.AspNet.WebSockets.Client.Test string closeDescription = "Test Closed"; using (var server = KestrelWebSocketHelpers.CreateServer(async context => { - Assert.True(context.IsWebSocketRequest); - var webSocket = await context.AcceptWebSocketAsync(); + Assert.True(context.WebSockets.IsWebSocketRequest); + var webSocket = await context.WebSockets.AcceptWebSocketAsync(); var serverBuffer = new byte[1024]; var result = await webSocket.ReceiveAsync(new ArraySegment(serverBuffer), CancellationToken.None); @@ -414,8 +414,8 @@ namespace Microsoft.AspNet.WebSockets.Client.Test string closeDescription = "Test Closed"; using (var server = KestrelWebSocketHelpers.CreateServer(async context => { - Assert.True(context.IsWebSocketRequest); - var webSocket = await context.AcceptWebSocketAsync(); + Assert.True(context.WebSockets.IsWebSocketRequest); + var webSocket = await context.WebSockets.AcceptWebSocketAsync(); await webSocket.CloseOutputAsync(WebSocketCloseStatus.NormalClosure, closeDescription, CancellationToken.None); })) @@ -442,8 +442,8 @@ namespace Microsoft.AspNet.WebSockets.Client.Test string closeDescription = "Test Closed"; using (var server = KestrelWebSocketHelpers.CreateServer(async context => { - Assert.True(context.IsWebSocketRequest); - var webSocket = await context.AcceptWebSocketAsync(); + Assert.True(context.WebSockets.IsWebSocketRequest); + var webSocket = await context.WebSockets.AcceptWebSocketAsync(); var serverBuffer = new byte[1024]; var result = await webSocket.ReceiveAsync(new ArraySegment(serverBuffer), CancellationToken.None); @@ -472,8 +472,8 @@ namespace Microsoft.AspNet.WebSockets.Client.Test string closeDescription = "Test Closed"; using (var server = KestrelWebSocketHelpers.CreateServer(async context => { - Assert.True(context.IsWebSocketRequest); - var webSocket = await context.AcceptWebSocketAsync(); + Assert.True(context.WebSockets.IsWebSocketRequest); + var webSocket = await context.WebSockets.AcceptWebSocketAsync(); var serverBuffer = new byte[1024]; var result = await webSocket.ReceiveAsync(new ArraySegment(serverBuffer), CancellationToken.None); @@ -504,8 +504,8 @@ namespace Microsoft.AspNet.WebSockets.Client.Test string closeDescription = "Test Closed"; using (var server = KestrelWebSocketHelpers.CreateServer(async context => { - Assert.True(context.IsWebSocketRequest); - var webSocket = await context.AcceptWebSocketAsync(); + Assert.True(context.WebSockets.IsWebSocketRequest); + var webSocket = await context.WebSockets.AcceptWebSocketAsync(); await webSocket.CloseOutputAsync(WebSocketCloseStatus.NormalClosure, closeDescription, CancellationToken.None);