5

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

4

2 回答 2

4

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

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

于 2012-07-18T11:33:13.583 回答
0

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

于 2012-07-18T11:28:46.007 回答