【发布时间】:2021-09-07 22:03:03
【问题描述】:
我正在使用 blazor 构建多人视频游戏。
这个游戏非常基础,可以通过网络浏览器玩。 艰苦的工作是为了使玩家之间的实时交流成为可能。我过去曾经使用过 red5 之类的套接字服务器。
今天,我想使用 Microsoft 工具构建这个视频游戏:Blazor 和 signalr。
我的问题是我在服务器端需要一些线程。该线程将管理游戏逻辑。我试图创建一个 BackgroundService 任务。它工作正常。我可以通过信号集线器与玩家交流。但我对BackgroundService 的某些事情感到害怕:它们附加到http 服务器进程。有时 IIS 会杀死并创建新进程。那么我如何确定我的 BackgroundService 将永远存在? (即使没有连接播放器,例如在晚上)。我如何确定我的 BackgroundService 不会被 IIS 杀死和重新创建?
我尝试使用 kestrel Web 服务器并将其作为 nginx 代理。我的 BackgroundService 永远不会被杀死。但我想知道红隼是否旨在同时处理大量网络客户端......
BackgroundService 对象有替代品吗?我想创建一个单独的程序,但我更喜欢整体方法...
非常感谢
【问题讨论】:
标签: signalr blazor blazor-server-side signalr-hub kestrel-http-server