如何使用 ably.io 设置电子商务消息传递解决方案

Posted

技术标签:

【中文标题】如何使用 ably.io 设置电子商务消息传递解决方案【英文标题】:How to set up an e-commerce messaging solution using ably.io 【发布时间】:2019-01-07 09:04:36 【问题描述】:

我有一个电子商务网站,我想使用ably.io 在我的客户之间实施消息传递解决方案。我是 ably.io 和 pub/sub 消息模式的新手,需要一些建议才能让我走上正轨。

假设我的网站上有 75,000 名用户。用户可以创建广告......如果有人对广告感兴趣,他们应该能够向广告商发送消息。

这是我在阅读 ably 的文档后想到的解决方案:

由于我有 75,000 个用户,因此我创建了 75,000 个频道,每个用户 1 个频道。

名为 Brian 的用户在网站上创建了一个广告。 Brian 订阅了 BrianChannel 以接收他自己频道上的所有消息。现在 Amy 和 Tom 看到了 Brian 的广告并想联系他,他们在 BrianChannel 上发布了一条消息,Brian 会收到这些消息。

我不确定上述解决方案是否正确?

如果上述解决方案是正确的,我还有两个问题:

    让我们 Brian 使用 javascript 订阅 BrianChannel。现在,Brian 显然不是 24/7 在线 - 当他离线时我应该如何处理他的消息?

    我有 75,000 名用户在我的网站上注册。在任何时候都有 5,000 名用户在线。在这 5000 个在线用户中,有 20 个用户实际上是在互相发送消息。使用我上面的解决方案,我应该为所有在线用户拥有 5,000 个活动频道......有没有办法减少活动频道的数量?也许通过定期轮询频道?

【问题讨论】:

【参考方案1】:

我是 Ably 的开发倡导者 Srushtika。

您的方法是正确的,实际上是最常用的方法。也就是说,您的 75,000 名用户中的每一个都将拥有自己的频道,只有他们会订阅这些频道。任何希望向他们发送消息的其他客户端,将附加到“他们的”频道并向其发布消息。由于所有用户都订阅了自己的频道,因此他们将能够收到任何发给他们的消息。

如果您的任何订阅客户端在向他们发送消息时不在线,Ably 的实时平台将默认保留 2 分钟,之后,如果订阅客户端仍然离线,消息将被丢弃。但是,使用Persisted History 功能,您可以将消息的保留时间增加到 24-72 小时。

不幸的是,到目前为止,Ably 还没有提供一种机制来在客户端仍然在线时从没有活动的频道中分离出来。但是,此功能即将推出。请留意我们的Engineering blog,我们会在其中发布所有此类更新。

希望能回答你的问题。

【讨论】:

以上是关于如何使用 ably.io 设置电子商务消息传递解决方案的主要内容,如果未能解决你的问题,请参考以下文章

在 Angular 中使用 ably.io JWT

连接使用Ably.io创建连接时出现Unknown错误

需要帮助在浏览器中将 MQTT 与 Ably 结合使用

如何在 Wildfly 中使用 CLI 设置消息传递子系统

使用 C# 进行消息传递的用途

使用 nodemailer 在 Node.JS 中发送电子邮件(错误:554 6.6.0 发送消息以进行传递时出错)