我已经花了数小时的时间进行搜索,试图弄清为什么websockets传输无法通过Mono 4.0.1在Linux上运行的c#4.5应用程序上通过signalr起作用。
我的项目中的参考文献:
Microsoft.Owin.Host.HttpListener
Microsoft.Owin.Host.SystemWeb
现在,我正在尝试找出阻止websockets工作的瓶颈所在。据我了解,它SystemWeb
基本上是一台自运行的服务器,该服务器利用Httplistener
侦听端口上的HTTP连接,然后将它们处理到SystemWeb
。我的零件正确吗?
有人可以为我指出一个未解决的问题的正确方向,还是目前正在开发中的错误跟踪器?从我所知道的,有一些核心功能http.sys
,从这个答案这是必需的,目前在Windows 8是否有在单执行这一计划?我希望不要使用一些第三方库,而不要使用SignalR
。
大约3个月前,我对Angular 2和Singnalr进行了类似的研究。我希望Web套接字的使用对于您的项目不是必不可少的。
正如您在这里看到的Xamarin开发人员之一所言,它不能像Mono中System.Web.WebSocket
未实现的那样工作,并且他们今天不打算实现它。
我相信mono的http堆栈目前正在进行许多工作,在我们看到这个特定问题解决之前,可能需要稳定下来。
我建议您继续使用当前的mono,因为signalr对于websocket具有回退的作用,这不会是一个大问题,将其实施为mono时,您只需简单地更新项目即可。我相信,按照当前MS的开源政策,它会比原先预期的要早。
如果您的项目需要websocket功能,则应该派生SignalR或找到使用第三方解决方案的分支版本,现在WebSocketListener确实很受欢迎并且具有更多功能。
我鼓励有兴趣使用SignalR的人,看看他们是否可以使用这些xplat websockets实现之一使其在自己的fork中工作。
更新:
不幸的是,我没有用WebSocketListener找到SignalR的任何分支,但是由于它有很多分支,所以很难找到。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句