自定义设置推送速率限制

时间:2013-09-19 01:25:28

标签: ruby-on-rails pusher rate-limiting

我在我的一个ActiveRecord模型中使用Rails after_save回调来向客户端发送推送通知,然后触发部分刷新。我正在使用Pusher。我遇到的问题是我可能会在5-10秒内创建或更新多达50条记录或其他任何内容,这会发送大量推送通知并最终刷新。我知道pusher的速率限制为每个客户端(连接)每秒不超过10条消息。有没有办法调整速率限制,说每个客户端(连接)每分钟不超过1条消息?

1 个答案:

答案 0 :(得分:3)

注意:我曾经为Pusher工作

您提到的速率限制实际上是在客户端之间发送事件时。它不会影响通过REST API发送消息。

客户端事件文档可在此处找到: http://pusher.com/docs/client_api_guide/client_events#trigger-events

服务器文档没有说明速率限制: http://pusher.com/docs/server_api_guide/interact_rest_api#publishing-events

您似乎有四种选择:

  1. 在您的服务器上执行某些操作,以便限制向Pusher API发送消息。这也可以节省您使用“每日消息”的分配。
  2. 在客户端做点什么;设置一个等待最多10秒的超时,以查看是否会出现任何其他刷新消息。因此它可以忽略它们,只有在确定没有更多消息到达时才刷新,然后在重新加载后再次触发刷新。
  3. 刷新页面时,请勿连接到Pusher最多10秒钟。这样你就会错过来自同一批次的所有其他刷新消息。
  4. 如果可能,请更改您的代码,以便您发送的消息不仅仅是告诉页面刷新,而是提供在客户端上动态更改页面所需的信息。由于您正在进行部分刷新 - 可能是通过获取更新内容的XHR - 这可能是可能的。