【问题标题】:I can't get a Pubnub presence timeout to reliably use the heartbeat value - what am I missing?我无法获得 Pubnub 存在超时来可靠地使用心跳值 - 我错过了什么?
【发布时间】:2014-11-04 05:23:29
【问题描述】:

我们有多种 pubnub 客户端:javascript、ruby、actionscript

知道客户是否/何时离开频道很重要;即使浏览器或桌面应用程序(Native Air 应用程序)崩溃。我正在更新 ActionScript 库以支持在线状态,因此我借鉴了 JavaScript 和 Ruby 实现,当一切运行良好时,我的在线状态工作正常,但 heartbeat 似乎无法检测在我的版本中崩溃的客户端。

所以,我在 Ruby 中使用 irb(gem 版本 3.6.7)尝试了以下操作:

require 'pubnub'

pn = Pubnub.new(:subscribe_key => 'my_sub_key', :uuid => 'my_uuid', :heartbeat => 30)
pn.subscribe(:channel => 'my_channel') { |d| d.msg }

然后我将 subscribe_key 和频道输入到 Pubnub 控制台。正如预期的那样,我的订阅在那里。

我退出 irb 并等待。我预计会在 30 秒左右看到存在超时,但需要等待整整 6 分钟才能收到超时。

另请注意: Javascript 客户端似乎确实可以工作。

我是否需要打开“存在”之外的其他东西才能使其按预期工作,还是我误解了心跳的作用?

【问题讨论】:

    标签: pubnub


    【解决方案1】:

    查看 Javascript 设置和 Ruby 3.6.7 之间的区别后,我注意到 Ruby 心跳帖子没有将心跳作为参数传递。

    当我将心跳参数添加到我的 ActionScript 版本时,它开始正常工作。

    我仍然对为什么 Ruby gem 对其他人有效感到困惑。

    【讨论】:

      【解决方案2】:

      我刚刚做了同样的测试,使用我们的网络控制台http://www.pubnub.com/console/?channel=my_channel&origin=pubsub.pubnub.com&sub=demo-36&pub=demo-36(使用演示密钥)

      我运行了你上面的代码,然后 CTRL-D 退出了 IRB。

      它按预期工作,30 秒后:

      Fri Oct 31 2014 15:35:38:597 : <my_channel 
      {"action":"timeout","timestamp":1414794938,"uuid":"my_uuid","occupancy":1}
      
      Fri Oct 31 2014 15:35:08:527 : <my_channel> 
      {"action":"join","timestamp":1414794908,"uuid":"my_uuid","occupancy":2}
      

      您使用的是哪个版本的 gem?我刚刚使用 RubyGems 的 3.6.7 进行了测试。

      杰瑞米

      【讨论】:

      • 无赖 - 我使用的是较旧的 gem,所以我兴奋了一会儿。虽然没有喜悦 - 我仍然得到相同的结果。我尝试过不同的渠道。这是我得到的:Sun Nov 02 2014 14:26:30:957 : {"action":"timeout","timestamp":1414956390,"uuid":"my_uuid","occupancy":1} Sun 2014 年 11 月 2 日 14:20:54:259 : {"action":"join","time
      • 向我们发送电子邮件至 support@pubnub.com,以便我们可以更深入地挖掘(获取您的密钥等),看看为什么您得到的结果与我们不同...
      • 我在 github 上创建了一个 pull request
      • 请也开一张票,我们想与您更详细地讨论发生的具体情况......
      • 一张票已打开,gem @master 的最新修复工作有效,票已关闭。
      猜你喜欢
      • 1970-01-01
      • 2012-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-04
      • 1970-01-01
      • 1970-01-01
      • 2014-01-20
      相关资源
      最近更新 更多