PubNub:将所有已发布消息记录到我的数据库的正确方法是什么

tom*_*omn 7 pubnub

记录每个已发布消息并将其保存到我的服务器数据库的正确方法是什么.

我可以想到两种选择:

  1. 使用PubNub功能发布事件后,将消息转发到专用记录器通道.服务器将订阅该频道并将到达的消息保存到db.这里提出另一个问题:当我将消息转发到PubNub函数中的另一个通道时,它还会触发PubNub函数吗?
  2. 使用PubNub XHR请求/响应函数并使用发布的消息调用我的服务器上的rest API并将其保存到db

有关性能和成本的最佳实践是什么?

Ste*_*lum 9

将PubNub消息保存到您的专用数据库

我们写了一篇文章,讨论了将JSON消息记录到私有数据库正确方法.

虽然存在许多方法.一个是最好的.使用PubNub函数.您将异步地将消息可靠地保存到数据库中.使用OnAfter发布事件.您的数据库需要通过安全的HTTPS端点访问.

PubNub不使用FTS索引为您的邮件编制索引 ; 在写作时.您可能需要使用数据库进行全文搜索索引,或使用https://www.algolia.com/等API提供程序进行全文搜索.

数据很有价值.AI和ML允许您使用Tensorflow从您的数据中创建洞察力.您可能希望对邮件内容运行数据分析.使用EMR/Hadoop或其他大数据分析软件.

您将使用PubNub函数通过执行以下步骤将消息异步保存到数据库系统中.

PubNub将消息保存到数据库

开始很容易.假设您已经有一个消息流发布到PubNub数据通道.按照这些简单的步骤.您将成功创建每个Publish事件触发的实时函数.

  1. 收集频道列表.您可能对所有频道感兴趣*.
  2. 在" 帐户信息中心"中找到您的应用,然后点击" 功能".
  3. 为指定的API密钥集创建新模块.
  4. 在通道上创建一个新的OnAfter事件处理程序*.
  5. 使用以下示例代码将消息异步保存到数据库.
  6. 确保修改URL /参数以满足您的需求.

异步HTTPS保存消息功能

// Request Handler
export default request => { 
    return save(request).then( () => request.ok() );
}

// Async Logging/Save of JSON Messages
function save( data, retry=3 ) {
    const xhr  = require('xhr');
    const post = { method : "POST", body : request.message };
    const url  = "https://my.company.com/save"; // <-- CHANGE URL HERE

    // save message asynchronously
    return xhr.fetch( url, post ).then( serverResponse => {
        // Save Success! 
    }).catch( err => {
        // Retry
        if (retry > 0) save( data, --retry );
    });
}
Run Code Online (Sandbox Code Playgroud)