Owin自身主机上的SignalR websocket

Posted

技术标签:

【中文标题】Owin自身主机上的SignalR websocket【英文标题】:SignalR websocket on Owin self host 【发布时间】:2015-09-18 09:32:56 【问题描述】:

我在 Owin Self 主机上尝试 SignalR。一切正常文件,但 SignalR 回退到服务器发送事件而不是使用 WebSockets。 我知道 IIS 7.5 (Windows 7) 不支持 websockets,但由于这是 Owin Self 主机,我的印象是它不依赖于 IIS 和 HTTP.sys,并且 websockets 应该可以工作。

甚至 Scott Hanselman 在下面的链接中评论说,使用 OWIN,我们可以在任何地方使用 WebSocket: https://aspnet.uservoice.com/forums/41199-general-asp-net/suggestions/3090811-websockets-support-in-asp-net-4-5-should-not-be-li

有谁知道如何使用 SignalR(或任何其他方法)和在 Windows 7 上运行的 Owin 来实现真正的 websocket?

【问题讨论】:

我通过外部框架将 WebSockets 与旧 Windows 版本(Windows 2012/8 之前)一起使用。由于您已经自行托管您的应用程序,如果您愿意不通过 SignalR 和/或 OWIN,它也可能是一个有效的选择。 嗨 vtortola,请分享有关框架的更多详细信息。可以下载试用吗? vtortola.github.io/WebSocketListener 这是我开发和维护的。还有其他的,例如 SuperWebSockets 或 AlchemyWs。我客观地推荐我的;) 【参考方案1】:

OWIN WebSocket 规范没有任何操作系统依赖项,但它确实依赖于实现它的服务器。立即尝试:https://github.com/Bobris/Nowin

在 Katana 自托管中使用的 HttpListener 仍然依赖于 Http.Sys 并且需要 Win8+ 来支持 WebSocket。

【讨论】:

以上是关于Owin自身主机上的SignalR websocket的主要内容,如果未能解决你的问题,请参考以下文章

SignalR.Owin 与 SignalR.SelfHost

当使用 SelfHost 的 OWIN 承载 SignalR 时,重启 OWIN 后,SignalR 不能正常工作

使用 OWIN 的 ASP.NET WebApi 的有效 WebSockets 实现是啥? (不能是 SignalR。)

在 OWIN 托管的 SignalR 实现中接受 ASP.NET 表单身份验证 cookie?

如何使用Owin和Web Api 2在SignalR上配置MessagePack?

支持 https 的 Owin 自托管控制台应用程序(无 Web api,无 SignalR)