diff --git a/src/Middleware/WebSockets/src/ExtendedWebSocketAcceptContext.cs b/src/Middleware/WebSockets/src/ExtendedWebSocketAcceptContext.cs index d4c7970696..e120f71283 100644 --- a/src/Middleware/WebSockets/src/ExtendedWebSocketAcceptContext.cs +++ b/src/Middleware/WebSockets/src/ExtendedWebSocketAcceptContext.cs @@ -6,13 +6,23 @@ using Microsoft.AspNetCore.Http; namespace Microsoft.AspNetCore.WebSockets { + /// + /// Extends the class with additional properties. + /// public class ExtendedWebSocketAcceptContext : WebSocketAcceptContext { + /// public override string SubProtocol { get; set; } + /// + /// This property is obsolete and has no effect. + /// [Obsolete("Setting this property has no effect. It will be removed in a future version.")] public int? ReceiveBufferSize { get; set; } + /// + /// The interval to send pong frames. This is a heart-beat that keeps the connection alive. + /// public TimeSpan? KeepAliveInterval { get; set; } } } diff --git a/src/Middleware/WebSockets/src/Microsoft.AspNetCore.WebSockets.csproj b/src/Middleware/WebSockets/src/Microsoft.AspNetCore.WebSockets.csproj index aef64b71c5..b90870dc0d 100644 --- a/src/Middleware/WebSockets/src/Microsoft.AspNetCore.WebSockets.csproj +++ b/src/Middleware/WebSockets/src/Microsoft.AspNetCore.WebSockets.csproj @@ -1,4 +1,4 @@ - + ASP.NET Core web socket middleware for use on top of opaque servers. @@ -9,6 +9,7 @@ true aspnetcore false + $(NoWarn.Replace('1591', '')) diff --git a/src/Middleware/WebSockets/src/WebSocketMiddleware.cs b/src/Middleware/WebSockets/src/WebSocketMiddleware.cs index 6ad67c216d..00568942d5 100644 --- a/src/Middleware/WebSockets/src/WebSocketMiddleware.cs +++ b/src/Middleware/WebSockets/src/WebSocketMiddleware.cs @@ -17,6 +17,10 @@ using Microsoft.Net.Http.Headers; namespace Microsoft.AspNetCore.WebSockets { + /// + /// Enables accepting WebSocket requests by adding a + /// to the if the request is a valid WebSocket request. + /// public class WebSocketMiddleware { private readonly RequestDelegate _next; @@ -25,6 +29,12 @@ namespace Microsoft.AspNetCore.WebSockets private readonly bool _anyOriginAllowed; private readonly List _allowedOrigins; + /// + /// Creates a new instance of the . + /// + /// The next middleware in the pipeline. + /// The configuration options. + /// An instance used to create loggers. public WebSocketMiddleware(RequestDelegate next, IOptions options, ILoggerFactory loggerFactory) { if (next == null) @@ -46,6 +56,12 @@ namespace Microsoft.AspNetCore.WebSockets // TODO: validate options. } + /// + /// Processes a request to determine if it is a WebSocket request, and if so, + /// sets the on the . + /// + /// The representing the request. + /// The that represents the completion of the middleware pipeline. public Task Invoke(HttpContext context) { // Detect if an opaque upgrade is available. If so, add a websocket upgrade. diff --git a/src/Middleware/WebSockets/src/WebSocketOptions.cs b/src/Middleware/WebSockets/src/WebSocketOptions.cs index 5bf4a15195..2147e60036 100644 --- a/src/Middleware/WebSockets/src/WebSocketOptions.cs +++ b/src/Middleware/WebSockets/src/WebSocketOptions.cs @@ -7,10 +7,13 @@ using System.Collections.Generic; namespace Microsoft.AspNetCore.Builder { /// - /// Configuration options for the WebSocketMiddleware + /// Configuration options for the WebSocketMiddleware. /// public class WebSocketOptions { + /// + /// Constructs the class with default values. + /// public WebSocketOptions() { KeepAliveInterval = TimeSpan.FromMinutes(2); diff --git a/src/Middleware/WebSockets/src/WebSocketsDependencyInjectionExtensions.cs b/src/Middleware/WebSockets/src/WebSocketsDependencyInjectionExtensions.cs index 69b2da7eb0..e25810880e 100644 --- a/src/Middleware/WebSockets/src/WebSocketsDependencyInjectionExtensions.cs +++ b/src/Middleware/WebSockets/src/WebSocketsDependencyInjectionExtensions.cs @@ -1,4 +1,4 @@ -// Copyright (c) .NET Foundation. All rights reserved. +// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; @@ -7,8 +7,17 @@ using Microsoft.Extensions.DependencyInjection; namespace Microsoft.AspNetCore.WebSockets { + /// + /// Extension method for to add WebSockets configuration. + /// public static class WebSocketsDependencyInjectionExtensions { + /// + /// Extension method for to add WebSockets configuration. + /// + /// The service collection to add WebSockets specific configuration to. + /// The configuration callback to setup . + /// public static IServiceCollection AddWebSockets(this IServiceCollection services, Action configure) { return services.Configure(configure);