PubNub:发布似乎不适用于 3G 网络

PubNub: Publish does not seem to be working for me on 3G network

我正在使用 PubNub。基本上做发布和订阅是没有问题的。但是,发布不适用于 3G 网络等慢速连接。 Wifi 还可以,但有人说 4G 也有同样的问题。有人知道怎么解决吗?

下面是我想做的

1. UserA opens a web page from PC and subscribe a channel.
2. UserA publishes data to the channel from mobile app.

3G/4G/LTE 移动网络上的 PubNub

调用 pubnub.subscribe(...) 方法时使用 backfill: true 选项。这允许您的设备在移动网络上接收消息。回填选项可防止移动网络延迟竞争条件。

// Setup
var channel = 'a'+Math.random();
var pubnub  = PUBNUB({
    ssl             : true
,   "publish_key"   : "pub-c-aefb421c-b30a-4afc-bae4-b866c5ea3d69"
,   "subscribe_key" : "sub-c-76f89e66-c3a9-11e5-b5a8-0693d8625082"
});

// Receive Message
pubnub.subscribe({
    backfill : true
,   channel  : channel
,   error    : out
,   connect  : publish
,   message  : out
});

// Send Message
function publish() { 
    out("CONNECTED!");
    pubnub.publish({
        channel : channel
    ,   error   : out
    ,   message : "SUCCESS IT WORKS!"
    });
}

// Network Check
pubnub.time(function(a){out(a ? "NETWORK CHECK" : "NETWORK BAD")});

function out(m) {
    document.getElementById("result").innerHTML 
        += "<br>" + JSON.stringify(m); 
}
<script src="https://cdn.pubnub.com/pubnub-dev.js"></script>
<h1>PubNub 3G/4G/LTE Network</h1>
<div id="result">PROCESSING_CONNECTIVITY...</div>

PubNub Mobile Network - Example Output

您也可以决定要其他选项。您还可以在 connect 回调中发出 pubnub.publish() 方法调用。

pubnub.subscribe({
    channel  : channel,
    message  : out,
    connect  : function() {
        pubnub.publish({
            channel : channel
        ,   message : "SUCCESS IT WORKS!"
        });
    }
});