- Hub类的生命周期是瞬态的,每次调用集线器的时候都会创建一个新的Hub类实例,因此不要在Hub类中通过属性、成员变量等方式保存状态。
- 如果服务器的压力比较大,建议把ASP.NET Core程序和SignalR服务器端部署到不同服务器上,以免它们互相干扰。
- 如果需要在客户端连接到集线器或者在集线器断开的时候执行代码,我们可以覆盖Hub类中的OnConnectedAsync和OnDisconnectedAsync方法。
- SignalR除了提供了供浏览器使用的JavaScript客户端,官方还提供了.NET、Java客户端,开源社区还提供了C++、Swift等语言的客户端,因此我们也可以编写WPF、、WinForm、Android、iOS等程序来连接服务器端。
- SignalR的JavaScript客户端不支持IE。如果项目需要兼容IE,请不要使用SignalR。ASP.NET Core把SignalR底层的WebSocket封装为了简单的组件,可以使用这个组件来编写原生的WebSocket程序,这样就能在IE10、IE11等不被SignalR支持的浏览器中进行服务器消息推送的开发。
- 因为Windows10、Windows11等是桌面操作系统,桌面操作系统是的IIS有10个并发连接的限制,如果我们要使用这些操作系统测试SignalR,就会发现SignalR服务器端并发能力非常差,所以这些桌面系统只能作为开发机使用。在生产环境中,请使用Windows Server系列操作系统或Linux。