我正在努力寻找一个在ASP.NET Core 1.0中设置WebSockets的例子;它们似乎都是针对以前版本的ASP.NET,有些依赖于在上下文(对我来说)似乎不存在的属性.
主要文件也只有一个占位符. http://docs.asp.net/en/latest/
例如:
app.UseWebSockets(); app.Use(async (context,next) => { if (context.IsWebSocketRequest) { WebSocket webSocket = await context.AcceptWebSocketAsync(); await EchoWebSocket(webSocket); } else { await next(); } });
不起作用,因为IsWebSocketRequest现在不存在. ASP.NET Core 1.0中的正确方法是什么?
解决方法
经过一些拆卸,它看起来像是被移动了一点点;并有一个新的WebSocketManager
app.UseWebSockets(); app.Use(async (context,next) => { var http = (HttpContext) context; if (http.WebSockets.IsWebSocketRequest) { WebSocket webSocket = await http.WebSockets.AcceptWebSocketAsync(); } });
另外,由于存在编译错误,所以假设上下文的类型为RequestDelegate.在将用法修改为context.WebSockets.IsWebSocketRequest之后,它现在知道上下文是HttpContext