簡體   English   中英

從何處開始Signalr和Webforms聊天應用程序的聊天集線器連接

[英]Where to start chat hub connection for Signalr and Webforms chat application

我正在使用舊版Webforms項目(請注意VB.net)在Signalr中進行一對一聊天。 基本上,我正在尋找類似Facebook聊天的結果,因此基本上,只要用戶登錄,他們就被歸類為“在線”。

我有一些成功。 在我的登錄方法中,我將已登錄的用戶添加到OnlineUsers的靜態列表中。 我有一個Chat.aspx頁面,當我刷新該頁面時,它將啟動SignalR集線器連接,並且我可以看到登錄的用戶(從OnConnected方法加載)。

顯然,我不想重新加載Chat.aspx頁以查看剛剛登錄的任何用戶,所以我的問題是,從說我的母版頁開始連接是否安全/高效,這樣當用戶上線/下線? 我猜這會導致不必要的連接負載嗎?

這是我的代碼。

登錄成功(添加到OnlineMembers的靜態列表中)

OnlineMember.AddOnlineMember(member.UserId, member.UserName)

Chat.aspx

$.connection.hub.start(function () { chat.server.getAllOnlineStatus(); });

Raj,我認為您最好在有人真正登錄時立即調用例程。

如果您具有將用戶添加到OnlineUsers列表的登錄例程,則可以通過調用更新在線用戶列表的方法來觸發所有客戶端的更新。

Chat.aspx頁內的某個函數(除登錄外)可在任何時間運行,將不必要地產生負載。 SignalR的優點是對客戶端的持久性以及觸發客戶端例程時如何定位“全部”或“調用者”。

(這是對在ASPX中注冊的例程的服務器端集線器調用。如果需要,可以將數據作為參數傳遞給它。)

成功登錄新客戶端后,可以執行以下操作:即Clients.Caller.updateOnlineUserList(); -或-Clients.Caller.updateOnlineUserList(someData);

(顯然,您需要為“ updateOnlineUserList”編寫代碼,以更新頁面上顯示的用戶列表。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM