【问题标题】:Can self hosted SignalR on the Raspberry Pi work?Raspberry Pi 上的自托管 SignalR 可以工作吗?
【发布时间】:2014-02-08 13:37:10
【问题描述】:

我想在 Raspberry Pi 上托管一个基于 C#/mono/signalR 的网页 - 这可能吗?

我设法编写了一个客户端-服务器-客户端解决方案,其中 signalR 集线器托管在运行 IIS 8 的 PC 上。pi 上的控制台应用程序使用 c# signalR 客户端连接到服务器集线器。 asp.net 服务器还托管了一个“远程控制”页面,供浏览器客户端向 pi 发送命令,但现在我想消除 PC 作为一项要求,并将所有内容都托管在 pi 上。

【问题讨论】:

    标签: c# mono signalr raspberry-pi nancy


    【解决方案1】:

    TLDR

    可以的! VideoCode

    长篇大论

    我设法获得了一个与 Nancy、SignalR 和基于 OWIN 的网络服务器 NoWin 一起使用的解决方案,该服务器从 Rasperry Pi 上的控制台应用程序运行(单声道 3,硬浮动)。请参阅此解决方案中的 RPi.Nancy 项目:

    https://github.com/neutmute/RPi.Demo

    与连接到 IIS SignalR 主机的纯客户端相比,作为自托管 Web 服务器的 pi 有点滞后。来自 knockout.js 绑定范围滑块的响应非常慢,在客户端停止移动后,更新流需要几秒钟才能完成向服务器的馈送。在 PC 上运行相同的自托管服务器也会出现一些延迟,但不像在 Pi 上那么慢。

    在运行自托管 signalR 时,单声道进程在拖动滑块并传输 signalR 事件流时消耗 97%。在以 IIS 作为集线器服务器的纯客户端模式下不会发生这种情况,但是当猛烈拖动滑块时,IIS 服务器确实会遇到高 CPU 使用率,所以也许应该原谅 pi 有一点延迟。

    我也尝试将Katana 作为网络服务器,但它的运行速度甚至比 NoWin 还要慢。

    请注意,如果一个人只是在这里和那里发送几个按钮按下,则完全自托管的 SignalR 解决方案可以正常工作 - 只有在来回拖动滑块并产生连续的事件流时,延迟才明显。一种解决方案可能是通过敲除绑定限制来自滑块的更新并降低滑动事件的分辨率。

    另外值得注意的是,托管在 pi 上的 SignalR 不能使用 Web 套接字,因为它们仅在 SignalR 托管在 IIS 8 上时可用。而是使用服务器端事件传输。这与纯客户端模式下的传输方式相同。

    【讨论】:

      猜你喜欢
      • 2012-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-25
      • 2021-05-27
      • 2015-04-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多