gpt4 book ai didi

c# - Raspberry Pi 上的自托管 SignalR 可以工作吗?

转载 作者:太空狗 更新时间:2023-10-29 22:13:52 26 4
gpt4 key购买 nike

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

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

最佳答案

TLDR

可以的! Video . Code .

说来话长

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

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

与作为连接到 IIS SignalR 主机的纯客户端相比,作为自托管 Web 服务器的 pi 稍微有些滞后。来自 knockout.js 边界范围 slider 的响应非常慢,更新流在客户端停止移动后需要几秒钟才能完成传送到服务器。在 PC 上运行相同的自托管服务器也表现出一些滞后,但没有在 Pi 上那么慢。

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

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

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

还需要注意的是,当托管在 pi 上时,SignalR 不能使用网络套接字,因为它们仅在 SignalR 托管在 IIS 8 上时可用。改为使用服务器端事件传输。这与纯客户端模式下的传输相同。

关于c# - Raspberry Pi 上的自托管 SignalR 可以工作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21216122/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com