2015-08-28 102 views
1

我在使用SignalR的階段在我的項目中,我不明白什麼時候使用Self託管選項,什麼時候我們不應該使用。作爲一個例子,如果我願意主機服務器場中我的web應用程序,當我們應該使用SignalR自己託管,當我們不應該?

  • 將有獨立的託管服務器在每個IIS服務器
  • 獨立SignalR樞紐

如果我們要廣播消息進入每個客戶端,SignalR如何工作

+0

這是回答您的一些問題嗎? –

回答

1

SignalR在多個實例中運行的想法是,實例A上連接的客戶端無法從連接到實例B的客戶端獲取消息。

SignalR scaleout documentation

然而,當你向外擴展,客戶端可以被路由到不同的服務器 。連接到一臺服務器的客戶端將不會收到從另一臺服務器發送的消息 。

解決方案是使用backplane - 每當服務器收到一條消息,它就會將其轉發給所有其他服務器。你可以使用Azure Service Bus,RedisSQL來做到這一點。

我看到的方式是,如果您不希望完整的IIS運行(因爲您有一些輕量級操作不需要所有IIS沉重),或者您不希望Web服務器(例如,您希望將實時功能添加到現有的讓我們說的表單應用程序或任何其他進程中)。

請務必閱讀documentation for self-hosting SignalR並確定您是否確實需要自行託管SignalR。

如果您正在IIS下開發Web應用程序,我看不到任何您希望自行託管SignalR的原因。

希望這會有所幫助。祝你好運!

相關問題