2014-07-08 70 views
0

我有一種情況,用戶可以在線修改Excel網格計劃。我希望能夠顯示一條消息,指出時間表正在另一個窗口中進行修改。但是,如何在打開窗口的情況下執行此操作,並且如果之前的窗口已用SignalR關閉。對於其他會話,我只想聲明另一個用戶正在修改時間表。SignalR和一個瀏覽器窗口一次會話

+0

很模糊你正在問什麼。你能提供一個簡單的場景嗎? –

+0

查看時間表頁面,打開標籤並導航到相同的時間表頁面,但顯示消息時間表頁面已被查看。 –

回答

0

它可能是最容易使用localStorage的一個用戶有多個選項卡/窗口之間進行通信開放:http://www.codediesel.com/javascript/sharing-messages-and-data-across-windows-using-localstorage/

您可以偵聽其中每觸發一個用戶對您的網站時打開的窗口上storage事件您致電localStorage.setItemlocalStorage.removeItem

當然,使用SignalR來通知其他用戶仍然有意義。

如果出於某種原因無法使用localStorage API,則仍然可以使用SignalR通過在Hub內使用Clients.User(userName)....將消息發送到用戶已打開的每個窗口。默認情況下,userName應該與您的用戶的IPrincipal.Identity.Name匹配,但您可以註冊您自己的IUserIdProvider以自定義此設置:http://www.asp.net/signalr/overview/signalr-20/hubs-api/mapping-users-to-connections#IUserIdProvider

相關問題