2

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

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

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

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

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

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

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

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

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

4

1 回答 1

1

我是 Ably 的开发倡导者 Srushtika。

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

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

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

希望这能回答你的问题。

于 2018-07-31T10:45:24.270 回答