我只是想知道为什么Microsoft 推荐的 Blazor-Server-Chat 解决方案是初始化 Signal R Hub。从技术上来说,所有的C#代码都是在服务器上执行的,所以也可以通过单例来实现聊天:
public class MySingleton
{
public event Action<string> OnBroadcast
public void Send(string msg)
{
OnBroadcast.Invoke(msg);
}
}
Run Code Online (Sandbox Code Playgroud)
在 Blazor 组件中,我使用此单例、订阅事件并调用Send(...).
为什么我应该使用单独的 SignalR Hub 来实现此聊天?