1
我的API控制器中的一些需要訪問Hub上下文,並且我知道GlobalHost.ConnectionManager.GetHubContext調用非常昂貴。有沒有一種有效的方式來做到這一點?訪問API控制器中的SignalR Hub上下文的有效方式
我的API控制器中的一些需要訪問Hub上下文,並且我知道GlobalHost.ConnectionManager.GetHubContext調用非常昂貴。有沒有一種有效的方式來做到這一點?訪問API控制器中的SignalR Hub上下文的有效方式
你怎麼知道GlobalHost.ConnectionManager.GetHubContext
通話費用很高?
我剛剛嘗試在一個循環中調用GetHubContext
10,000次,並在我的機器上花費了174毫秒。這意味着每次通話平均爲0.0000174秒。在大多數Web API調用或Web請求的情況下,我認爲這種方式並不特別昂貴。
如果在建立任何SignalR連接之前首先致電GetHubContext
,那麼初始呼叫將需要更長的時間。在我的機器上,這個第一次通話花費了96毫秒。這一次花費了初始化一些通常在第一個SignalR連接建立時初始化的SignalR單例。隨後的調用取平均值爲上面提到的0.0174毫秒。
如果這太貴了,您可以隨時將返回的IHubContext
存儲在一個單例中。它是線程安全的。