PubNub 到服务器的数据传输

PubNub to server data transfer

我正在构建物联网应用程序。我正在使用 PubNub 在硬件和用户之间进行通信。 现在我需要将来自硬件和用户的所有消息和数据存储在中央服务器中。我们想做一些机器学习。

除了让服务器订阅所有输出通道(会有很多)之外,还有其他方法可以做到这一点吗?

我希望有某种涉及 PubNub 中存储和回放模块的每天一次的数据转储

提前致谢

PubNub 到服务器数据传输

是的,您可以每天执行一次涉及存储和回放功能的数据转储。

But first check this out! You can subscribe to Wildcard Channels like a.* and a.b.* to receive all messages in the hierarchy below. That way you can receive messages on all channels if you prefix each channel with a root channel like: root.chan_1 and root.chan_2. Now you can subscribe to root.* and receive all messages in the root.

要启用涉及存储和回放的每天一次的数据转储,首先 在您的服务器上启用 Storage and Playback on your account. PubNub will store all your messages on disk over multiple data centers for reliability and read latency performance boost. Lastly you can use the History API 以获取最早存储的所有数据只要您知道要获取的频道即可。

这是一个 JavaScript 函数,可以从频道中获取所有消息。

获取所有消息用法

get_all_history({
    limit    : 1000,
    channel  : "my_channel_here",
    error    : function(e) { },
    callback : function(messages) {
        console.log(messages);
    }
});

获取所有消息代码

function get_all_history(args) {
    var channel  = args['channel']
    ,   callback = args['callback']
    ,   limit    = +args['limit'] || 5000
    ,   start    = 0
    ,   count    = 100
    ,   history  = []
    ,   params   = {
            channel  : channel,
            count    : count,
            callback : function(messages) {
                var msgs = messages[0];
                start = messages[1];
                params.start = start;
                PUBNUB.each( msgs.reverse(), function(m) {history.push(m)} );
                callback(history);

                if (history.length >= limit) return;
                if (msgs.length < count)     return;

                count = 100;
                add_messages();
            },
            error : function(e) {
                log(  message_out, [ 'HISTORY ERROR', e ], '#FF2262' );
            }
        };

    add_messages();
    function add_messages() { pubnub.history(params) }
}