2013-07-26 28 views
0

我爲我們的公司網站(ASP.NET)開發SignalR(1.1.2)聊天,我不知道如何將它放在幾乎所有網站頁面上。我有下面的問題:SignalR幾乎所有頁面上的網站

  1. 當用戶在其他頁面上移動時,用戶的在線/離線狀態發生變化。

    在我的聊天狀態設置在我的Hub類中執行OnConnected/Ondisconnected回調,並在用戶在其他頁面上移動時調用。

  2. 我應該使用$ .connection.hub.start()在所有頁面上完成SignalR的初始化嗎?可能有解決方法嗎?

  3. 跨域是什麼意思?我不明白這個定義。

  4. 在我的Hub類中,我應該在OnReconnected回調中移動什麼邏輯?

在此先感謝。

回答

2

聽起來就像您試圖以錯誤的方式使用SignalR。

除非您的應用程序是單頁應用程序,否則每次更改頁面時都必須啓動集線器。例如。全部通過JavaScript在一個頁面上運行。

當您更改頁面時,您正在有效關閉到集線器的SignalR連接,然後您需要在下一頁中啓動它。這將引發Disconnect事件。

每次連接時,您的用戶都將獲得一個新的ConnectionID,因此他們的在線/離線狀態將根據您的處理方式而改變。

唯一的解決方法是創建一個單頁應用程序。

跨域意味着您正在從客戶端的另一個URL調用SignalR方法。

在你的OnReconnected回調中,你可能只想寫一些邏輯,告訴用戶他們已經被重新連接。

相關問題