文档中心
实时信令
Console 官网 社区 技术支持

RTM 2 是如何计量的?

分类: 账号与计费    平台: All Platforms   最后更新时间: 2022/11/29 02:41:11

RTM 根据你的账户在一个自然月内的消息总数、峰值连接数和存储占用量来定价。你可以查看计费说明来了解更多信息。

RTM 是如何计量消息数的?

消息的计量规则如下:

Publish/Subscribe

  • 在 Message Channel 中发布任何 1 条消息被计作 1 条消息。
  • 在 Message Channel 中收到的任何 1 条消息计做 1 条消息数。例如,一个客户端向一个 Message Channel 发送 1 条消息,而该 Channel 被 10 人订阅,则被计作 1 条发送消息和 10 条接收消息,总计 11 条消息。
  • 在 Stream Channel 中的 Topic 中发布的任何 1 条消息被计作 1 条消息。
  • 在 Stream Channel 中的任何 Topic 中收到的任何 1 条消息计作 1 条消息。例如,一个客户端向 Stream Channel 中的某个 Topic 发送 1 条消息,而此 Topic 被 10 人订阅,则被计作 1 条发送消息和 10 条接收消息,总计 11 条消息。
  • 注意事项:
    • 即使客户端开启了消息过滤也不会对消息计量有任何影响。客户端消息过滤功能只出于方便开发者目的,实际上消息已经被投递了。
    • 在 Message Channel 或 Stream Channel 中发布 1 条消息所产生的异步回调不计入消息数。
    • 使用 RESTful API 发送的消息也计入消息数。
    • 如果客户端没有订阅频道或者 Topic ,客户端不会收到任何消息。

Presence

  • 发布的每 1 条 Presence 事件通知都被计作 1 条消息,例如客户端的进入频道、离开频道、超时通知、状态变更通知。
  • 频道中收到的每 1 条 Presence 事件通知都被计入为 1 条消息。例如,一个客户端进入频道,其余 10 个客户端订阅了该频道且开启了 withPresence 参数以接收该频道中的 Presence 事件通知,那么这个客户端进入频道时,发送 1 条 Presence 事件通知,其余 10 个客户端共接收 10 条 Presence 事件通知,总计 11 条消息。
  • 注意事项:
    • 与普通消息类似,客户端消息过滤功能对 Presence 事件通知计数没有影响。
    • 如果客户端在加入 Stream Channel 或者订阅 Message Channel 时不希望发送 Presence 事件或接收其他人的 Presence 事件通知,可以将 beQuite 参数设置为 True,将 withPresence 设置成 False,但这并不影响消息数的计入。
    • 如果客户端不加入 Stream Channel 或订阅 Message Channel ,则不会收到该频道的 Presence 事件通知。

      Storage

  • 在 Message Channel 或 Stream Channel 中设置、查询、更新、删除任何 1 条频道属性,计入 1 条消息数。
  • 在 Message Channel 或 Stream Channel 中收到任何 1 条频道属性变更事件通知,计入 1 条消息数。例如,客户端在某个频道设置 1 条频道属性,该频道被 10 人订阅,且这些用户开启了 withMetadata 参数以接收频道属性变更通知,则视为发布了 1 条消息,并接收了 10 条消息,总计 11 条消息。
  • 设置、查询、更新、删除任何 1 条用户属性,计入 1 条消息数。
  • 接收到 1 条用户属性的变更通知计入 1 条消息数。例如,客户端为某个用户设置 1 条用户属性,该用户属性被 10 人订阅,则视为发布了 1 条消息,并接收了 10 条消息,总计 11 条消息。
  • 注意事项:
    • 与普通消息类似,客户端消息过滤功能对属性变更通知计数没有影响。
    • 如果客户端在加入 Stream Channel 或者 订阅 Message Channel 时不希望接收频道属性变更通知,可以将 withMetaData 设置成 False,但这并不影响消息数的计入。
    • 如果客户端不加入 Stream Channel 或订阅 Message Channel ,则不会收到该频道的属性变更通知。
    • 如果客户端不订阅其他用户的用户属性,则不会收到其他用户的用户属性变更通知。

Locks

  • 在任何频道中,任意 1 个对锁的设置、查询、释放、剥夺、删除等操作都计入 1 条消息数。
  • 在 Message Channel 或 Stream Channel 中收到任何 1 条锁变更事件通知,计入一条消息数。例如,客户端在某个频道设置 1 把锁,该频道被 10 人订阅且这些用户开启了 withLock 参数以接收锁变更通知,则视为发布了 1 条消息,并接收了 10 条消息,总计 11 条消息。
RTM 中,1 条消息以 1KiB 作为计算单位,因此,如果你向一个被 100 人订阅的频道或者 Topic 发送一条大小为 10 KiB 的消息包,将被计为 10 条入站消息和 1,000 条出站消息,总计 1,010 条消息。

RTM 是如何计量存储占有的?

RTM 中的频道/用户属性特性(Storage) 和历史消息特性(History)会产生云端存储的占用,RTM 会以一个自然月为周期,以 1 小时作为间隔采样客户实际云端存储占用再累加的方式计量当月总的存储占有量及账单数额,计算公式如下:
(待补充)

RTM 是如何计量峰值连接数的?

峰值连接数是一个自然月内任意时间点同时连接到 RTM 服务器的实时客户端的最大数量。例如,如果你有 10,000 名客户,并且在某个月最多有 500 个客户端同时连接 RTM 服务,则 PCU 的数值为 500,即你只需为 500 个峰值连接付费。一个月内连接到 RTM 的客户端或设备总数不会影响计费。