2017-02-03 8 views
0

ユーザがしばらくの間切断し、もう一度メッセージを送信したい場合は、SignalRでメッセージングを実装することを検討してください。ここで信号Rでしばらくの間切断されたユーザにメッセージを送信してください

は私の単純なハブです:

[HubName("ContosoChatHub")] 
public class ContosoChatHub : Hub 
{ 

} 

そして、私はメッセージをブロードキャスト:私の心に来る

var hubContext = GlobalHost.ConnectionManager.GetHubContext<ContosoChatHub>(); 
hubContext.Clients.All.AddCallForAgent(new { }); 

答えて

1

まず最初は、あなたのハブにこれを追加します

private static ConcurrentDictionary<string, Queue<Message>> UnconfirmedMessages; 

stringタイプはユーザーIDをマッピングします(ユーザーは認証する必要があります)。

  1. ユーザーにメッセージを送信するときはいつでも、そのメッセージをキュー に追加します。
  2. 次に、受信したメッセージIDを使用して、ユーザー/クライアントが というハブに確認メッセージを送信します(例:ちょっと、メッセージ1,2,3、および 4)。その時点で、それらのメッセージをキューから削除します。
  3. クライアントが再接続すると、すべての未確認メッセージがハブに尋ねられます。それはステップ2に戻ります。
+0

こんにちは@xleon、どうすればユーザーIDを取得できますか? signalRでのユーザ認証のためのドキュメントはありますか? –

+0

その件については数多くの記事があります。しかし、SignalRのドキュメント自体がそれを本当にうまく説明しています – xleon

関連する問題