小编pat*_*atS的帖子

Net Core MVC6 WebSockets中间件

首先,我知道SignalR是最好的websocket框架,我应该使用它而不是低级实现。

但是,是否有人知道如何在控制器中正确使用websocket?我完全绿了。

任何好的教程都将非常有帮助:)

我已经尝试过这样做。

中间件

 app.UseWebSockets();

 app.Use(async (context, next) =>
 {
        var http = (HttpContext)context;

        if (http.WebSockets.IsWebSocketRequest)
        {
         WebSocket webSocket = await http.WebSockets.AcceptWebSocketAsync();     
        }
         else
         {
            await next();
         }
 });
 //thanks to next(); app.UseMvc();
Run Code Online (Sandbox Code Playgroud)

控制者

[Route("ws")]
    public class MonitorController : Controller
    {
        HttpContext context;
        WebSocket socket;

        public MonitorController(IHttpContextAccessor accessor)
        {
            this.context = accessor.HttpContext;
            if (!this.context.WebSockets.IsWebSocketRequest)
                throw new InvalidOperationException("incoming request is not a websocket request");
        }

        [HttpGet]
        public IActionResult Get()
        {
            return new MonitorWaiter(Wait);
        }
        .... some code MonitorWaiter.....
Run Code Online (Sandbox Code Playgroud)

本地主机:5000 / …

c# asp.net asp.net-mvc websocket

5
推荐指数
0
解决办法
1199
查看次数

标签 统计

asp.net ×1

asp.net-mvc ×1

c# ×1

websocket ×1