向在signalR中断开一段时间的用户发送消息

时间:2017-02-03 20:23:12

标签: signalr disconnect

考虑使用SignalR实现消息传递时的情况,用户断开连接一段时间,并且您想再次向她发送她错过的消息。

这是我的简单中心:

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

}

我播放了这条消息:

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

1 个答案:

答案 0 :(得分:1)

我想到的第一件事就是将其添加到您的中心:

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

string类型将映射用户ID(用户应进行身份验证)。

  1. 每当您向用户发送消息时,都会将其添加到其队列中 同样。
  2. 然后,用户/客户端将向集线器发送确认 收到消息ID(即:嘿,我收到消息1,2,3和 4)。那时你将从队列中删除这些消息。
  3. 当客户端重新连接时,它会向集线器询问所有未经证实的消息。那会让你再次踏上第二步。