diff --git a/aspnetcore-webapi/RestVsWebSocket/Client/Client.csproj b/aspnetcore-webapi/RestVsWebSocket/Client/Client.csproj index f02677bf64..dfb40caafc 100644 --- a/aspnetcore-webapi/RestVsWebSocket/Client/Client.csproj +++ b/aspnetcore-webapi/RestVsWebSocket/Client/Client.csproj @@ -2,7 +2,7 @@ Exe - net7.0 + net10.0 enable enable diff --git a/aspnetcore-webapi/RestVsWebSocket/RestVsWebSocket/Controllers/TaskController.cs b/aspnetcore-webapi/RestVsWebSocket/RestVsWebSocket/Controllers/TaskController.cs index 13db6a2ea3..7f8c3ad223 100644 --- a/aspnetcore-webapi/RestVsWebSocket/RestVsWebSocket/Controllers/TaskController.cs +++ b/aspnetcore-webapi/RestVsWebSocket/RestVsWebSocket/Controllers/TaskController.cs @@ -1,6 +1,5 @@ using Microsoft.AspNetCore.Mvc; using System.Net.WebSockets; -using System.Net; using System.Text; namespace RestVsWebSocket.Controllers; @@ -35,32 +34,15 @@ public IActionResult AddTask([FromBody] string task) [HttpGet] public async Task Get() { - if (HttpContext.WebSockets.IsWebSocketRequest) - { - using var ws = await HttpContext.WebSockets.AcceptWebSocketAsync(); + using var ws = await HttpContext.WebSockets.AcceptWebSocketAsync(); - while (true) - { - var message = "The time is: " + DateTime.Now.ToString("HH:mm:ss"); - var bytes = Encoding.UTF8.GetBytes(message); - var arraySegment = new ArraySegment(bytes, 0, bytes.Length); - if (ws.State == WebSocketState.Open) - { - await ws.SendAsync(arraySegment, - WebSocketMessageType.Text, - true, - CancellationToken.None); - } - else if (ws.State == WebSocketState.Closed || ws.State == WebSocketState.Aborted) - { - break; - } - Thread.Sleep(1000); - } - } - else + while (ws.State == WebSocketState.Open) { - HttpContext.Response.StatusCode = (int)HttpStatusCode.BadRequest; + var message = $"The time is: {DateTime.Now:HH:mm:ss}"; + var bytes = Encoding.UTF8.GetBytes(message); + + await ws.SendAsync(bytes, WebSocketMessageType.Text, true, CancellationToken.None); + await Task.Delay(1000); } } } \ No newline at end of file diff --git a/aspnetcore-webapi/RestVsWebSocket/RestVsWebSocket/Program.cs b/aspnetcore-webapi/RestVsWebSocket/RestVsWebSocket/Program.cs index eaf9e15c7b..b2c874c22a 100644 --- a/aspnetcore-webapi/RestVsWebSocket/RestVsWebSocket/Program.cs +++ b/aspnetcore-webapi/RestVsWebSocket/RestVsWebSocket/Program.cs @@ -1,28 +1,14 @@ var builder = WebApplication.CreateBuilder(args); -// Add services to the container. - builder.Services.AddControllers(); -// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle -builder.Services.AddEndpointsApiExplorer(); -builder.Services.AddSwaggerGen(); +builder.Services.AddOpenApi(); -builder.WebHost.UseUrls("http://localhost:5289"); +builder.WebHost.UseUrls("http://localhost:5289"); // Client/Program.cs hardcodes this URL var app = builder.Build(); -// Configure the HTTP request pipeline. -if (app.Environment.IsDevelopment()) -{ - app.UseSwagger(); - app.UseSwaggerUI(); -} - -app.UseHttpsRedirection(); - -app.UseAuthorization(); - -app.MapControllers(); +app.MapOpenApi(); app.UseWebSockets(); +app.MapControllers(); app.Run(); diff --git a/aspnetcore-webapi/RestVsWebSocket/RestVsWebSocket/RestVsWebSocket.csproj b/aspnetcore-webapi/RestVsWebSocket/RestVsWebSocket/RestVsWebSocket.csproj index d2f5cb08bd..e1f290f996 100644 --- a/aspnetcore-webapi/RestVsWebSocket/RestVsWebSocket/RestVsWebSocket.csproj +++ b/aspnetcore-webapi/RestVsWebSocket/RestVsWebSocket/RestVsWebSocket.csproj @@ -1,14 +1,13 @@ - net7.0 + net10.0 enable enable - - + diff --git a/aspnetcore-webapi/RestVsWebSocket/Tests/Tests.csproj b/aspnetcore-webapi/RestVsWebSocket/Tests/Tests.csproj index 9b74c13fbb..c5f74c4801 100644 --- a/aspnetcore-webapi/RestVsWebSocket/Tests/Tests.csproj +++ b/aspnetcore-webapi/RestVsWebSocket/Tests/Tests.csproj @@ -1,7 +1,7 @@ - net7.0 + net10.0 enable enable