如何确定客户端是否使用SignalR接收了消息

时间:2012-07-15 07:03:55

标签: signalr

如果我使用SignalR发送消息,客户端是否可能没有收到消息?如何验证通信中是否有任何错误?我想在发送服务器通知后将消息发送回服务器,但还有更好的方法吗?

2 个答案:

答案 0 :(得分:4)

是的,客户端可能没有收到消息。 SignalR将消息保存在内存中30秒(默认情况下,您可以调整它或使用持久性消息总线),因此如果客户端由于某种原因未连接并且此超时通过,则客户端将错过该消息。请注意,如果他在此期间重新连接,他会收到他尚未收到的所有邮件,包括断开连接时发送的邮件。

我不知道SignalR是否提供了一种告诉您何时广播失败的方法,因此将确认发送回服务器可能更安全。

答案 1 :(得分:0)

只要客户端已连接,它就会收到消息。您可以在客户端代码中订阅连接状态更改。在服务器端代码中,您可以实现IConnected和IDisconnect接口来处理Connect,Disconnect和Reconnect事件。