React to WebSocket feature API changes.

This commit is contained in:
Chris Ross 2015-04-24 10:52:06 -07:00
parent f71d49744e
commit 66b669aa22
5 changed files with 45 additions and 46 deletions

View File

@ -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; }

View File

@ -73,13 +73,13 @@ namespace Microsoft.AspNet.WebSockets.Server
}
}
public async Task<WebSocket> AcceptAsync(IWebSocketAcceptContext acceptContext)
public async Task<WebSocket> 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)

View File

@ -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": {

View File

@ -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;
}

View File

@ -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<byte>(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<byte>(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<byte>(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<byte>(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<byte>(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<byte>(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<byte>(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<byte>(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<byte>(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<byte>(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<byte>(orriginalData, 0, 2), WebSocketMessageType.Binary, false, CancellationToken.None);
await webSocket.SendAsync(new ArraySegment<byte>(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<byte>(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<byte>(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<byte>(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);