长沙的企业网站建设,央视优购物官方网站,哪个网站做长图免费转高清图片,关于网站建设中原创文章的一些想法如何在 ASP.NET Core 中使用 WebSocket在现代 Web 应用程序中#xff0c;WebSocket 连接非常流行且使用率极高。它可以帮助企业满足数字环境需求#xff0c;并处理来自最终用户的实时数据。它还能提升生产力、输出率和用户体验。如果您还没有使用 WebSocket#xff0c;那么您…如何在 ASP.NET Core 中使用 WebSocket在现代 Web 应用程序中WebSocket 连接非常流行且使用率极高。它可以帮助企业满足数字环境需求并处理来自最终用户的实时数据。它还能提升生产力、输出率和用户体验。如果您还没有使用 WebSocket那么您应该开始在 ASP.NET Core 应用程序中使用它。它将帮助您在这个充满活力的市场中实现预期的业务成果。要了解其实现方式请进一步探索提供的流程。ASP.NET Core 应用程序中的 WebSocket 是什么在 ASP.NET Core 应用程序中Web Sockets 启用了一种在服务器和客户端之间建立低开销通信的协议。它允许服务器-客户端架构中的设备持续通信直到其中一方关闭连接。在实时应用中WebSocket 起着主要作用因为它们使服务器能够接收持续更新的数据。这种连接本质上是双向的并且需要 HTTP 支持才能实现稳定性、性能和速度。何时在 ASP.NET Core 项目中实现 WebSocket 连接功能只有符合以下要求或用例时才应在 ASP.NET Web API 应用程序和其他应用程序中实现 WebSockets。 ✓ 开发实时应用程序如聊天室、金融科技或企业系统。✓ 构建一个在线游戏应用程序其中服务器接收不断的客户端更新。✓ 当您需要刷新 UI 而用户没有要求时。✓ 用于构建供内部、部门内或建筑物内使用的聊天应用程序。✓ 创建用于实时股票和股份交易的外汇和交易系统。同样您可以确定您的需求是否属于这些场景。为了更好地澄清请咨询.NET 开发公司或聘请 .NET Core 开发人员。深入了解 ASP.NET Core 应用程序中的 Web Sockets一个实际示例在这里我们将学习 ASP.NET Core 项目中 WebSocket 的功能。完成本教程后您将了解 ASP.NET Web API 应用程序的 WebSocket 通信配置的基础知识。首先下载、安装并打开最新版本的 Visual Studio IDE。本教程将使用 .NET 6.0 框架。您可以使用更高版本但在实施之前请检查其对协议的支持情况。该过程分为三个主要阶段概述如下 ✓ 第 1 阶段服务器端配置✓ 第 2 阶段客户端配置✓ 第 3 阶段测试 WebSockets 通信让我们从过程开始。阶段 1服务器端配置 ✓ 步骤 1在 Visual Studio IDE 中创建一个空的 ASP.NET Core 项目使用 C#作为其主要编程语言。在每个项目设置屏幕上您都会在右下角找到“下一步/创建”按钮。填写详细信息并选择可靠的选项后点击该按钮继续操作。步骤 2在“配置新项目”屏幕上根据您的需求填写项目详细信息。在本教程中我们使用“ SimpleWS-Server ”作为项目和解决方案名称。步骤 3在“附加信息”屏幕上选择.NET 6.0其余设置保持不变。确保所有设置与以下代码片段中的设置一致。步骤 4项目生成后您将在“解决方案资源管理器”选项卡中看到其所有关联文件。此外它将显示如下所示的默认 Hello World 代码。您必须将app.Run ()方法替换为 app.RunAsync()。步骤 5现在我们将添加UseWebSockets()函数和builder.WebHost.UserUrls()方法。该函数将使我们的应用程序能够使用 WebSocket 通信。该方法将有助于定义服务器的端口和 URL在本例中为“ http://localhost:6969 ” 。步骤 6在 WebSocket 函数之后配置服务器的端点映射。我们将使用app.Map()方法并将 WebSocket 路由设置为“ ws ”。此外我们还将在同一方法中添加上下文。步骤 7应用程序中的上下文。需要配置map ()方法。在其中我们将添加仅接受/允许 WebSocket 通信的逻辑。为此您必须添加 context.WebSockets.IsWebSocketRequest检查。如果请求是 Web 套接字ASP.NET Core 应用程序将接受它否则将发送 400 错误错误请求。步骤8一旦应用程序确认这是一个Web套接字连接它就应该为其定义一个实例。为此请添加以下代码。using var ws await context.WebSockets.AcceptWebSocketAsync(); 该实例将有助于使用ws.State验证当前连接状态。在上面的代码片段中您可以看到 Web Socket 可以经历的所有七种连接状态。每个状态都有一个对应的值用于确定当前状态。步骤9要使服务器能够发送消息请使用WebSocket 实例上的SendAsync()方法。它接受以下参数。 ✓ ArraySegmentbyte✓ WebSocketMessageType enum✓ Bool endofMessage✓ CancelationToken所有这些参数都需要转换为字节数组从而生成ArraySegmentbyte并向客户端发送消息。var message Hello World!;
var bytes Encoding.UTF8.GetBytes(message);
var arraySegment new ArraySegmentbyte(bytes, 0, bytes.Length);
await ws.SendAsync(arraySegment,WebSocketMessageType.Text,true,CancellationToken.None); 步骤 10为了让 WebSocket 服务器以“ HH:MM:SS ”格式返回当前时间给客户端请将以下逻辑包装在 while(true) 循环中如下所示。该逻辑还使用Thread.Sleep(1000)函数将进程延迟 1 秒。此外代码将验证 WebSocket 连接状态仅当检测到打开状态时才发送消息。到这里服务器端配置就完成了。我们的 WebSockets 服务器已经准备好了。阶段 2客户端配置让我们创建 WebSocket 客户端。步骤 1打开您的 Visual IDE以使用 C# 作为编程语言创建 .NET 控制台应用程序。步骤 2填写项目详细信息。在本教程中我们使用SimpleWS-Client作为解决方案和项目名称。步骤 3 选择.NET 6.0框架并创建项目。步骤 4为了使客户端设备能够启动 Web 套接字连接我们将使用System.Net.WebScokets提供的ClientWebSocket。using System.Net.WebSockets;var ws new ClientWebSocket(); 步骤 5要连接WebSockets服务器请使用以下代码块。它包含带有取消令牌和URL的ConnectAsync方法。await ws.ConnectAsync(new Uri(ws://localhost:6969/ws), CancellationToken.None); 步骤 6编写代码让客户端在连接状态变为alive后接收来自服务器的消息。步骤 7为了接收来自 WebSockets 服务器的消息我们将RecieveAsync()方法添加到客户端代码库。它将使客户端设备能够接受取消令牌和ArraySegmentbyte。此外您还将创建一个字节数组缓冲区来生成 ArraySegmentbyte。步骤 8使用上述所有代码我们的结果仍然是字节数组格式。但是我们希望它显示为字符串。因此我们必须使用Encoding.UTF8.GetString()方法实现编码。另外添加以下代码来检查连接是否未关闭。result.MessageType WebSocketMessageType.Close步骤 9 检查代码。确保最终的客户端代码与以下内容相同。步骤 10 测试 WebSockets 服务器和客户端的功能。首先运行服务器项目然后运行客户端项目。如果显示当前时间HH:MM:SS格式则表示配置成功。到目前为止我们已经针对一个客户端测试了 WebSockets 项目。但是在实际场景中可能会有多个最终用户。因此在下一阶段我们将测试它处理多个 WebSocket 通信的能力。阶段 3测试 WebSockets 通信为了测试多个 WebSocket 连接我们将创建并使用一个聊天室应用程序。它将包含以下功能 ✓ 连接多个用户并为他们创建实例。✓ 要求每个用户输入他们的用户名/姓名。✓ 广播聊天室、加入和离开通知。✓ 聊天室中每个用户接收和发送消息。✓ 通过检查 WebSocket 连接状态来删除客户端实例。与前两个阶段的配置类似我们将首先编写服务器的代码然后编写客户端的代码。服务器代码您的完整服务器代码将是以下代码库。让我们分解一下代码。首先你会找到代码的用途以及它下面执行该过程的代码部分。用于跟踪多个 WebSocket连接。为了向每个最终用户/客户端广播消息使用SendAsync()方法。用于模拟聊天室并广播新连接客户端的用户名。为了管理消息接收过程将使用类似于客户端配置的RecieveAsync() 方法。在WS 处理中调用 ReceiveMessage() 函数。为了在聊天室中广播收到的消息使用ActionWebSocketReceiveResult, byte[] handleMessage修改了 ReceiveMessage() 函数。此外我们修改了 ReceiveMessage 调用使 lambda 函数能够通过。此外我们还将在 lambda 函数中添加逻辑以便将一个用户的消息广播给聊天室中所有其他用户。下面的代码用于跟踪离开聊天室的用户。它检测 WebSocket 状态以确定客户端是否存在。客户端代码在客户端添加以下代码块用于输入用户名。使用以下代码向服务器发送消息该消息随后将在聊天室中广播。这里将在 ClientWebSocket 实例上使用 SendAsync() 方法。要管理退出聊天室的客户端请使用以下代码。它将告诉应用程序删除该特定客户端的 WebSocket 实例。现在客户端代码已经完成只剩下测试部分。要测试聊天室应用程序请运行服务器和客户端项目。如果看到“用户加入房间”消息则表示ASP.NET Core 应用运行成功。现在创建另一个客户端实例以验证服务器是否正在检测并广播新的用户加入通知。输出将类似于以下内容。进一步从第二个实例发送消息并持续监视第一个客户端接收消息。现在关闭第二个实例的连接并打开一个新客户端第三个客户端。类似地您可以发送消息、添加新客户端、删除当前客户端以及广播消息来测试 ASP.NET Core WebSockets 应用程序。总结 ASP.NET Core 中的 WebSockets实时应用程序广泛使用 WebSocket在服务器-客户端架构中提供双向通信。要实现它您首先应该选择正确的用例正如本博客中所述。此外您可以按照提供的步骤了解其实现方式。如果您喜欢此文章请收藏、点赞、评论谢谢祝您快乐每一天。