【问题标题】:SignalR and Websockets on MonoMono 上的 SignalR 和 Websockets
【发布时间】:2015-08-07 19:02:27
【问题描述】:

我已经进行了数小时的搜索,试图弄清楚为什么 websockets 传输在我的通过 mono 4.0.1 在 linux 上运行的 c# 4.5 应用程序上无法通过信号器工作。

我项目中的参考资料:

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

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

有人可以为我指出一个未解决的问题或目前正在开发的错误跟踪器的正确方向吗?据我所知,http.systhis answer 中有一些核心功能是 Windows 8 所必需的。有计划在单声道中实现吗?我不希望获得一些第三方库,而是让它在SignalR 中工作。

【问题讨论】:

标签: c# .net mono .net-4.5 owin


【解决方案1】:

大约 3 个月前,我对 Angular 2 和 Singnalr 的一个项目进行了类似的调查。我希望,Web 套接字的使用对您的项目来说不是必需的。

正如您所看到的 here 一位 Xamarin 开发人员所说,它不起作用,因为 System.Web.WebSocket 没有在 Mono 中实现,而且他们现在也不打算实现它。

我相信 mono 的 http 堆栈还有很多工作要做 现在,在我们看到这个特别的之前,这可能需要稳定下来 问题已解决。

我建议您继续使用当前的单声道,因为信号器已为 websockets 提供后备,这不会是一个大问题,当它实现为单声道时,您可以简单地更新您的项目。根据当前 MS 的开源政策,我相信它会比预期的更快。

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

我鼓励任何有兴趣分叉 SignalR 的人,看看他们是否可以 使用这些 xplat websockets 实现之一来让它工作 他们自己的叉子。

更新:

不幸的是,我找不到任何带有 WebSocketListener 的 SignalR 分支,但由于它有很多分支,所以很难找到。

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

【讨论】:

  • 我不知道你为什么提到微软的开源政策,但微软自己的 WebSocket 支持绑定到 http.sys(仅限 Windows)。所以他们的源代码在这种情况下对 Mono 没有帮助,除非他们后来在这里付出了一些额外的努力。
  • 如果您正在寻找完整的赏金,我还需要有关 Owin 管道的信息以及有关单声道情况的更多详细信息。我的下一步是什么?有没有人在这个领域创建了一个分支或完成了工作?我记得看到一些对单声道的提交,但后来又恢复了。这是很快就计划好的吗? SignalR 在回退方面一直是最好的,我讨厌转向一个全新的平台来处理 websocket。
  • 哦,我没有回答这个问题只是因为它才注意到你的问题。不幸的是,对 OWIN 管道一无所知。请检查我在问题中的更新以了解其余部分。
  • 问题(如前所述)是微软将 websockets 实现为操作系统功能而不是协议。疯狂,因为在任何操作系统和 .NET 版本上实现 websocket 都很容易。我没有使用 SignalR,但我也想用我的自定义 websocket 实现替换 websocket 的 Owin 管道。还没有找到方法:(好奇,你为 SignalR 使用什么客户端?只有在 Win8+ 上有客户端、带有 websockets 的浏览器和 WP8+ 的浏览器时,你才会获得 websockets...AFAIK 在 SignalR 中没有其他支持 websocket 的客户端...
  • @Uffe,我正在使用 .net 客户端进行桌面集成,并使用 javascript api 进行 Web 集成。两者都在使用 SSE 故障回复,这些都可以正常工作,但并不理想。
猜你喜欢
  • 1970-01-01
  • 2012-12-17
  • 1970-01-01
  • 2012-03-20
  • 1970-01-01
  • 2015-10-19
  • 2013-03-01
  • 2017-01-12
  • 2013-05-10
相关资源
最近更新 更多