频道数和结算

时间:2014-07-28 02:54:32

标签: pubnub

我正在寻找建立一个监控主要城市公共交通巴士的应用程序:

我使用pubnub做了一个快速原型。公共汽车有一个电话向一个频道发送gps信号,公共汽车用户有电话订阅频道。我有疑问:

  1. 我计划每条公交线路都有一个频道。这个城市有50条路线,因此将有50条路线。这是否符合最佳做法?

    1. 是否有api列出频道?
  2. 我每秒都会向频道发送一条消息。假设有50条路线,其中5条公交车每条24小时运行。每日将有216亿条消息。我将被收取一天的费用?

  3. 每次调用发布时,您的Android客户端是否都会打开网络连接?我想最小化正在传输GPS信号的手机使用的带宽。

  4. 巴士用户可能希望查看多辆巴士的位置。我知道最佳做法是订阅一个公共频道和一个私人频道。最好的方法是什么?

  5. 如果您能回答上述问题,我将不胜感激。

1 个答案:

答案 0 :(得分:3)

预先全面披露 - 我为PubNub客户成功工作,因此对定价相关问题的回复仅仅是信息性的,不应被视为促销。 Asker特别提到了PubNub,下面提供的信息可以从PubNub网站上公开获得。

Anant,同样作为FYI StackOverflow通常会要求将这些问题作为单独的线程提出。继续前进,请尽力遵守社区准则。

1就具体的架构和设计模式策略而言,每个实现都会有所不同,尽管您提出的方法似乎是对渠道方法的合理利用。 PubNub并不限制使用的通道总数,但是对于大多数移动开发框架来说,实际限制是同时订阅超过50个通道将大约是上限。添加更多,iOS和Android将开始表现出性能限制。如果添加了新的总线,则可以管理订阅以仅订阅附近的路线等

问题1第二个是缩进。是的,可以使用here_now API

完成

2 PubNub每百万条消息收费1美元(未启用SSL),因此根据您的假设,您的消息费用为每天216美元。话虽如此,这里有很大的空间用于设计模式优化,这样公交车只有在发生变化时才会发布新位置 - 在公交车静止不动时重复发布。对其自身的这种优化将显着降低消息使用数字,并且还有其他策略可用于根据您的特定实现方法进一步优化。如果您预计每月需要超过10亿条消息,那么部署到Global Cloud将是有意义的,以便利用Go Cloud上无法提供的批量折扣定价。

3 PubNub不会打开与每个发布的新连接,而是保持活动套接字连接打开,直到通过丢失网络连接/ app force close取消订阅或断开连接。在几个小时的时间内保持此连接活动并且没有任何其他发布/订阅活动的带宽利用率通常小于1K,具体取决于您的配置参数。 Android支持后台线程,因此即使应用程序未处于焦点,连接也可以保持打开状态,以便于数据推送警报,可用于提示用户将应用程序带回前台以查看任何更新的信息。

4这个问题不明确,假设公共汽车位置发布到公共频道,私人频道的目的是什么?如果您指的是私人频道接收用户所选总线到达的警报,那么这是一个合适的实施策略。如果你的意思不同,请澄清一下。