使用Singleton vs单独的Signalr Hub聊天实现

发布于 2025-01-24 02:55:11 字数 578 浏览 0 评论 0 原文

我只是想知道为什么 Microsoft 推荐的大餐 - 服务器 - 聊天解决方案是初始化信号R中心的推荐解决方案。 从技术上讲,所有C#代码均在服务器上执行,因此也有可能与单身人士实现聊天:

public class MySingleton
{
    public event Action<string> OnBroadcast
    public void Send(string msg)
    {
        OnBroadcast.Invoke(msg);
    }
}

在impoint的Blazor-component中,我消耗了此单例,订阅了该事件,并调用 send(...)

为什么我应该与单独的Signalr Hub意识到此聊天?

I was just wondering why the recommended solution for a Blazor-Server-Chat by Microsoft is initializing a Signal R Hub.
Technically, all the C# Code is executed on the server, so it's also possible to realize the chat with a singleton:

public class MySingleton
{
    public event Action<string> OnBroadcast
    public void Send(string msg)
    {
        OnBroadcast.Invoke(msg);
    }
}

In the Blazor-Component I consume this singleton, subscribe to the event, and call Send(...).

Why I should realize this Chat with a separate SignalR Hub?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

时光沙漏 2025-01-31 02:55:11

在您链接的文档中,Microsoft不建议您使用普通SignalR Hub进行聊天应用程序,他们正在提供有关如何使用Azure SignalR服务的文档;付费的Azure服务可以在多个服务器实例中简化使用SignalR。使用Singleton,您不需要集线器,但是如果您的Web应用程序在负载平衡器后面有多个实例,则它将无法使用。

如果您只有一个Web应用程序实例,并且永远不会扩展到其他实例,那么Singleton方法可能会正常工作。

In the document you linked, Microsoft isn't recommending you use a normal SignalR Hub for a chat application, they are providing documentation on how you can use Azure SignalR Service; a paid Azure service that simplifies using SignalR across multiple server instances. With a singleton you don't need a hub, but it won't work if your web app has multiple instances behind a load balancer.

If you only have one web app instance and you will never expand to additional instances, then the singleton approach would probably work fine.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文