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

问题描述 投票:7回答:1

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

我可以想到两个选项:

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

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

pubnub
1个回答
9
投票

Save PubNub Messages to your Private Database

我们写了一篇关于right way to log JSON Messages to a Private Database的文章。

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

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

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

您将使用PubNub Functions通过以下步骤将您的消息异步保存到数据库系统中。

PubNub Save Message to Database

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

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

Asynchronous HTTPS Save Message Function

// 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 );
    });
}
© www.soinside.com 2019 - 2024. All rights reserved.