-1
我只是想知道,即使沒有連接的用戶,是否可以將數據從集線器方法存儲到數據庫中?即使用戶處於離線狀態,也可以在表格中存儲消息signalR
所以我有一個基本的方法,從一個組外發送一個消息給一個組中的每個用戶,這很好(發送消息和商店在分貝),但我只是注意到,如果沒有連接的用戶將數據存儲到數據庫的方法不會觸發。人們會假設客戶端功能何時啓動,它仍然被髮送到集線器進行處理?
一個用於可視化參考的小代碼片段。
public void Send(string campaignName, string message, string name, string email, string query)
{
//Save Support Request
int campaignID = Business.Campaign.getCampaignIDByCampaignName(campaignName);
string n = HttpContext.Current.Server.HtmlEncode(name);
string e = HttpContext.Current.Server.HtmlEncode(email);
string q = HttpContext.Current.Server.HtmlEncode(query);
Business.SupportRequest.newSupportRequest(n, e, q, campaignID);
//If users online send message
List<Business.User> users = Business.User.getUsersFromCampaign(campaignName);
foreach (var u in users)
{
Clients.Client(u.connectionID).sendSupportRequest(message);
}
}
我可以很容易地從客戶端調用另一個函數插入到數據庫但id,而不是保留在集線器。
任何幫助非常感謝!
如果你想在你可以只檢查'如果(u.IsNullOrEmpty || u.Length> 0)'然後調用sendSupportRequest(消息)在foreach發送此給用戶但是爲什麼您是否想向未連接的人發送消息,除非您計劃在下次登錄時將這些消息發送給該用戶。 – MethodMan 2014-10-29 21:05:22
@DJKRAZE發送消息給用戶可以在他們連接時正常工作,這很有意義,同時它存儲到數據庫。我想要做的就是保存到數據庫,即使用戶斷開連接。如果沒有用戶連接,我的保存方法不會觸發。 – 2014-10-29 21:19:38
那麼我建議你不明白什麼部分?你能寫一個有條件的支票來檢查嗎? – MethodMan 2014-10-29 21:21:09