您现在的位置是: 首页 > .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】获取绝对路径、相对路径