如何在 C# Asp.net MVC 中创建 websocket 客户端?

Posted

技术标签:

【中文标题】如何在 C# Asp.net MVC 中创建 websocket 客户端?【英文标题】:How do I create a websocket client in C# Asp.net MVC? 【发布时间】:2021-05-18 09:05:45 【问题描述】:

早上好, 如何在 C# Asp.net MVC 中连接到 Websocket,同时保持连接处于活动状态?

我在网上找,但我发现只创建服务器而不是客户端

【问题讨论】:

【参考方案1】:

.net 5 有教程 -> https://sahansera.dev/understanding-websockets-with-aspnetcore-5/

对于 .net core 3.1,一切都类似,但要使用 Controller,您需要使用中间件

public class WebSocketMiddleware

    ...

    public async Task Invoke(HttpContext context)
    
            if (!context.WebSockets.IsWebSocketRequest)
            
                context.Response.StatusCode = 400;
                return;
            

            WebSocket socket = await context.WebSockets.AcceptWebSocketAsync();

            ...
    

或者你也可以使用 SignalR https://docs.microsoft.com/en-us/aspnet/core/signalr/introduction?view=aspnetcore-5.0

但您可以在官方文档https://docs.microsoft.com/en-us/aspnet/core/fundamentals/websockets?view=aspnetcore-3.1中找到大多数信息

【讨论】:

【参考方案2】:

哦,对不起,您正在寻找客户...

您可以创建一个服务类来处理您的 WebSocketClient 并使用异步连接/断开方法。 不仅仅是在一些 IHostedService 中调用这个方法。

【讨论】:

以上是关于如何在 C# Asp.net MVC 中创建 websocket 客户端?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ASP.NET MVC 视图中用 C# 打印出 GridView?

如何在 ASP.NET MVC 中创建 CheckBoxListFor 扩展方法?

我们如何使用 EF 在 ASP.Net MVC 应用程序中创建 3 层架构?

如何在 asp.net mvc 中创建审计日志/审计跟踪

如何在 Visual Studio 2017 的 ASP.NET MVC 中创建自定义生成/脚手架模板(Razor)?

如何在asp.net c#中创建连接字符串