您现在的位置是: 首页 > .NET CORE > 文章详情 文章详情
ASP.NET Core 集成 WebSocket
2019-08-19 【.NET CORE】 2003人浏览
1. 环境
AspNetCore Web 2.0 (MVC)
Windows 10
IIS 10 Express/IIS
VS 2017
2.如何配置
在已有的或者新创建的 AspNet Core MVC 项目中安装Microsoft.AspNetCore.WebSockets 包
Install-Package Microsoft.AspNetCore.WebSockets
配置中间件
在 Startup 类的 Configure 方法中添加 WebSocket 中间件,
    public void Configure(IApplicationBuilder app, IHostingEnvironment env)            {                if (env.IsDevelopment())
                {
                    app.UseBrowserLink();
                    app.UseDeveloperExceptionPage();
                }                else
                {
                    app.UseExceptionHandler("/Home/Error");
                }
                app.UseStaticFiles();                //Be sure to configure before mvc middleware.
                //var webSocketOptions = new WebSocketOptions()
                //{
                //    KeepAliveInterval = TimeSpan.FromSeconds(120),
                //    ReceiveBufferSize = 4 * 1024
                //};
                //app.UseWebSockets(webSocketOptions);
                app.Use(async (context, next) =>
                {                    if (context.WebSockets.IsWebSocketRequest)
                    {                        using (IServiceScope scope = app.ApplicationServices.CreateScope())
                        {                            //do something 
                            WebSocket webSocket = await context.WebSockets.AcceptWebSocketAsync();
                            ProcessWebSocketRequest(webSocket);
                        }
                    }                    else
                    {                        //Hand over to the next middleware
                        await next();
                    }
                });
                app.UseMvc(routes =>
                {
                    routes.MapRoute(
                        name: "default",
                        template: "{controller=Home}/{action=Index}/{id?}");
                });
            }
一定要在MVC中间件之前配置WebSocket中间件,否则无法接受到WebSocket请求
编写具体业务代码
部署运行项目
至此就完成了AspNetCore MVC集成 WebSocket
Tips
app.UseWebSockets();一定要在 app.UserMVC()之前配置
使用自定义中间件优先处理WebSocket请求
很赞哦! (0)
相关文章

热门收藏
- .net core Redis分布式缓存的客户端实现
 - .net core API 统一拦截错误
 - ASP.NET Core MVC中的IActionFilter.OnActionExecuted方法执行时,Controller中Action返回的对象是否已经输出到Http Response中
 - aspnet core 2.1中使用jwt从原理到精通一
 - aspnet core 2.1中使用jwt从原理到精通二
 - aspnet core 2.1中使用jwt从原理到精通三
 - ASP.NET Core 使用 JWT 搭建分布式无状态身份验证系统
 - 消除 ASP.NET Core 告警 "No XML encryptor configured. Key may be persisted to storage in unencrypted form
 - .NET Core 中基于 IHostedService 实现后台定时任务
 - 【.Net Core】获取绝对路径、相对路径