【问题标题】:How to detect pubnub is not reachable如何检测pubnub不可访问
【发布时间】:2016-09-28 11:14:39
【问题描述】:

我在我的平台(客户端和服务器)中使用 pubnub。我通过pubnub将消息从服​​务器推送到客户端。每当客户端由于本地代理无法访问 pubnub 服务或互联网可用性以外的任何错误而无法订阅 pubnub 频道时,我需要回退到通过 HTTP 的传统心跳方法来访问我的平台服务器。我已经浏览了 PubnubError.class 但它定义了许多错误代码。您能否分类列出哪些错误符合我的要求?

【问题讨论】:

  • 不确定是什么问题。你是什​​么意思通过HTTP的心跳方法?您可能会通过 HTTP 使用 heartbeat,但只是不确定您要完成什么。但是 PubNub SDK 内置了错误处理和连接重试失败。
  • 如果这篇知识库文章有帮助,请告诉我:pubnub.com/knowledge-base/discussion/142/…
  • 嗨克雷格,会有一个基于间隔的监视器,它将向服务器发送请求以获取待处理的消息/更新。例如:如果间隔是 10 分钟,那么监视器将请求服务器非常 10 分钟以获取更新。如果客户端订阅 pubnub 失败,这是一个后备。

标签: android pubnub


【解决方案1】:

PubNub SDK 内置错误处理和连接失败重试。请查看 PubNub 知识库文章 How do I check network connectivity

【讨论】:

    【解决方案2】:

    如果我正确理解您的需求,您可以实施 Craig 的方法。您可以使用任何适用于 android 的 HTTP 库从客户端向 http://pubsub.pubnub.com/time/0 发出 GET 请求。您可以指定一个超时时间,比如说几秒钟,然后您才能得出 PubNub 无法从该客户端访问的结论。如果在合理的时间内没有来自该 URL 的响应,您可以回退到将客户端连接到平台服务器的其他方法。

    【讨论】:

    • 嗨亚当,我认为克雷格和你提到的方法不能真正告知失败是否是由于不可用。我写了一个 5 分钟唤醒警报,它将尝试订阅 pubnub 以确保设备是居住。如果应用程序进程由于某种原因被杀死,这将是最有用的。每当订阅失败时,我都会收到带有错误代码的 pubnub 错误回调。所以现在我需要确定错误是否是由于 pubnub 不可用而不是由于连接失败。如果它是由于网络错误,那么我等待连接并执行重新订阅,否则我需要回退到 sen 的心跳
    • d HTTP 请求在预定义的时间间隔后发送到我的服务器。如果 pubnub 订阅在一段时间后成功,那么我会将 pubnub 频道设为活动通信。因此,如果描述了错误代码,那么我的问题就解决了。现在在 PunbnubError 类中有一堆错误代码。他们都没有场景和描述。希望我说清楚了。
    • 每当订阅失败时,我都会收到带有错误代码的 pubnub 错误回调。所以现在我需要确定错误是由于 pubnub 不可用而不是由于连接失败造成的。 情况并非如此。如果是,请告诉我们。您使用的是哪些 PubNub SDK/版本?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多