- 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。