2014-09-05 51 views
4

我已經使用signalR創建了網絡聊天應用程序。用戶登錄時,用戶只能打開3-4個選項卡,每次生成不同的連接ID。我希望當我們打開新標籤或刷新頁面時,不應該生成新的連接標識。我想要使​​用現有的連接ID。爲此我試圖實現LocalStorage變量來存儲集線器連接。 但問題是我無法解析localstorage變量的值。signalR爲各種實例生成不同的ID

任何人都可以給我解決我的問題,或任何人都可以給我任何其他解決方案的問題?

我已經嘗試過這種http://kevgriffin.com/maintaining-signalr-connectionids-across-page-instances/但是這麼想的工作對我來說

回答

0

如果用戶通過驗證,您可以在HashSet的存儲不同connectionIds。 HashSet的關鍵是用戶的名字。

http://www.asp.net/signalr/overview/signalr-20/hubs-api/mapping-users-to-connections

可以使用,即使你不需要身份驗證此方法。在這種情況下,您可以使用SessionId而不是用戶名。

EDITED

我已經找到另一種方法。在此article亞歷克斯福特建議將您的連接限制爲3.

+0

問題將再次相同,因爲將生成不同的連接ID並再次打開3-4個選項卡我想要生成相同的連接ID。你有什麼想法嗎? – Priya 2014-09-06 04:21:07

+0

我看不到問題。讓用戶「Foo」有4個不同的connectionIds(1,2,3,4)。所有這些標識符都通過鍵「Foo」存儲在HashSet(它是字典的值)中。如果您想爲他發送消息,您可以執行以下操作: Clients.Clients(_connections [「foo」])。SendMessage(「a message」); – Neshta 2014-09-06 08:51:50

+0

問題不在於發送消息的問題與瀏覽器的連接限制有關。 – Priya 2014-09-06 10:15:29