Mono上的SignalR和Websockets

Fra*_*erZ 16 .net c# mono .net-4.5 owin

我已经完成了几个小时的搜索工作,试图弄清楚为什么websockets传输不能通过在我的c#4.5应用程序上通过mono 4.0.1在linux上运行的信号器工作.

我项目中的参考资料:

  • Microsoft.Owin.Host.HttpListener
  • Microsoft.Owin.Host.SystemWeb

现在,我正在试图找出阻碍websockets工作的瓶颈所在.我理解它的方式SystemWeb基本上是一个自运行的服务器,它利用在Httplistener端口上侦听HTTP连接然后处理它们SystemWeb.我的这部分是否正确?

有人能指出我正确的方向是一个开放的问题,还是一个目前正在开发的bug追踪器?从我所知道的,有一些核心功能http.sys,从这个答案这是必需的,目前在Windows 8上的单执行这一有计划?我不想得到一些第三方图书馆,并让这个工作SignalR.

Onu*_*pal 13

我在3个月前与Angular 2和Singnalr进行了类似的调查.我希望,Web套接字的使用对您的项目来说并不重要.

正如你在这里看到的一个Xamarin开发人员所说的那样,它System.Web.WebSocket没有在Mono中实现,并且他们现在还没有计划实现它.

我相信现在正在进行mono的http堆栈的很多工作,在我们看到这个特定的问题得到解决之前可能需要稳定下来.

我建议继续使用当前的单声道工作,因为信号器具有回退的websockets它不会是一个大问题,当它实现为单声道时,你可以简单地更新你的项目.根据目前MS的开源政策,我相信它会比它应该的更快.

如果您的项目需要websocket功能,那么您应该分叉SignalR或找到现在使用第三方解决方案的分叉版本WebSocketListener非常受欢迎且具有更多功能.

我鼓励有兴趣的人分叉SignalR,看看他们是否可以使用其中一个xplat websockets实现来使它在自己的fork中工作.

更新:

不幸的是,我找不到任何带有WebSocketListener的SignalR的分叉,但因为它有很多分叉很难找到.

据我所知,Mono团队几乎停止了所有的实现,并专注于对Mono的 ASP.Net vNext实现,因为它是开源的.