Skip to content

Commit c23ffa7

Browse files
committed
[v8.3.0] Lib.AspNetCore.ServerSentEvents
1 parent f8037eb commit c23ffa7

File tree

4 files changed

+12
-9
lines changed

4 files changed

+12
-9
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
## Lib.AspNetCore.ServerSentEvents 8.3.0
2+
### Additions and Changes
3+
- Added support for scenario when multiple types are provided as `Accept` header value (thanks to @krebil)
4+
- Added support for wildcard (`*/*` and `text/*`) mime types (thanks to @krebil)
5+
16
## Lib.AspNetCore.ServerSentEvents 8.2.0
27
### Additions and Changes
38
- Added options for controlling the format of [keepalives](https://tpeczek.github.io/Lib.AspNetCore.ServerSentEvents/articles/getting-started.html#keepalives).

Lib.AspNetCore.ServerSentEvents/Lib.AspNetCore.ServerSentEvents.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<PropertyGroup>
33
<Description>Lib.AspNetCore.ServerSentEvents is a library which provides Server-Sent Events (SSE) support for ASP.NET Core</Description>
44
<Copyright>Copyright © 2017 - 2023 Tomasz Pęczek</Copyright>
5-
<VersionPrefix>8.2.0</VersionPrefix>
5+
<VersionPrefix>8.3.0</VersionPrefix>
66
<VersionSuffix></VersionSuffix>
77
<Authors>Tomasz Pęczek</Authors>
88
<TargetFrameworks>netcoreapp3.1;net5.0;net6.0;net461</TargetFrameworks>

Lib.AspNetCore.ServerSentEvents/ServerSentEventsMiddleware.cs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public class ServerSentEventsMiddleware<TServerSentEventsService> where TServerS
2929
private readonly ServerSentEventsOptions _serverSentEventsOptions;
3030
private readonly ILogger<ServerSentEventsMiddleware<TServerSentEventsService>> _logger;
3131
private readonly bool _clientDisconnectServicesAvailable = false;
32-
private readonly HashSet<string> AcceptedHeaders = new() { "*/*", "text/*", Constants.SSE_CONTENT_TYPE };
32+
private readonly HashSet<string> _acceptableContentTypes = new() { "*/*", "text/*", Constants.SSE_CONTENT_TYPE };
3333

3434
private AuthorizationPolicy _authorizationPolicy;
3535
#endregion
@@ -116,8 +116,6 @@ public async Task Invoke(HttpContext context, IPolicyEvaluator policyEvaluator)
116116
}
117117
}
118118

119-
120-
121119
private bool CheckAcceptHeader(IHeaderDictionary requestHeaders)
122120
{
123121
if (!requestHeaders.ContainsKey(Constants.ACCEPT_HTTP_HEADER))
@@ -130,7 +128,7 @@ private bool CheckAcceptHeader(IHeaderDictionary requestHeaders)
130128
return !_serverSentEventsOptions.RequireAcceptHeader;
131129
}
132130

133-
if (requestHeaders.GetCommaSeparatedValues(Constants.ACCEPT_HTTP_HEADER).Any(acceptHeaderValue => AcceptedHeaders.Contains(acceptHeaderValue)))
131+
if (requestHeaders.GetCommaSeparatedValues(Constants.ACCEPT_HTTP_HEADER).Any(_acceptableContentTypes.Contains))
134132
{
135133
return true;
136134
}
@@ -219,7 +217,7 @@ private async Task ForbidAsync(HttpContext context)
219217
}
220218
}
221219

222-
private void DisableResponseBuffering(HttpContext context)
220+
private static void DisableResponseBuffering(HttpContext context)
223221
{
224222
#if !NET461
225223
IHttpResponseBodyFeature responseBodyFeature = context.Features.Get<IHttpResponseBodyFeature>();
@@ -236,7 +234,7 @@ private void DisableResponseBuffering(HttpContext context)
236234
#endif
237235
}
238236

239-
private void HandleContentEncoding(HttpContext context)
237+
private static void HandleContentEncoding(HttpContext context)
240238
{
241239
context.Response.OnStarting(ResponseOnStartingCallback, context);
242240
}

Test.AspNetCore.ServerSentEvents/Unit/Middleware/HandshakeTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,10 @@ public async Task Invoke_SseRequestWithoutAcceptHeaderAndAcceptHeaderRequired_Do
4242
[InlineData("*/*")]
4343
[InlineData("text/*")]
4444
[InlineData(SSE_CONTENT_TYPE)]
45-
public async Task Invoke_SseRequestWithAcceptedHeader_Accepts(string header)
45+
public async Task Invoke_SseRequestWithAcceptedHeader_Accepts(string contentType)
4646
{
4747
ServerSentEventsMiddleware<ServerSentEventsService> serverSentEventsMiddleware = SubjectUnderTestHelper.PrepareServerSentEventsMiddleware();
48-
HttpContext context = SubjectUnderTestHelper.PrepareHttpContext(acceptHeaderValue: header);
48+
HttpContext context = SubjectUnderTestHelper.PrepareHttpContext(acceptHeaderValue: contentType);
4949

5050
await serverSentEventsMiddleware.Invoke(context, null);
5151

0 commit comments

Comments
 (0)