【问题标题】:how to determine if the client received the message using SignalR如何确定客户端是否使用 SignalR 接收到消息
【发布时间】:2012-07-15 07:03:55
【问题描述】:

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

【问题讨论】:

    标签: signalr


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-05-21
        • 2016-08-25
        • 2020-08-13
        • 2020-10-15
        • 1970-01-01
        • 2016-04-29
        • 2017-05-26
        • 2021-12-22
        相关资源
        最近更新 更多