ruby - pubnub 发布不发布

标签 ruby ruby-on-rails-4 activerecord pubnub

我正在尝试向 pubnub channel 发布消息,但它未在服务器上发布。然而它在本地机器上工作得绝对正常。知道我哪里做错了吗?

class Message < ActiveRecord::Base

  after_create :send_message_to_driver

  def send_message_to_ABC
    $pubnub.publish(
        channel: "chat_ABC",
        message: message
    ) do |env|
      puts env.parsed_response
    end
  end
end

$pubnub 正在为应用程序进行全局初始化。

最佳答案

好的,通过一些研究和调试,我能够解决这个问题。出现此问题的原因是,默认情况下,Ruby 操作是异步的。因此脚本在发布完成之前终止。幸运的是,我们为这个 pubnub 的发布方法提供了一个选项 http_sync。将其设置为 true 可确保该流程在发布完成之前不会终止。所以新代码是

$pubnub.publish(
  http_sync: true,
  channel: "chat_ABC",
  message: message
) do |env|
  puts env.parsed_response
end

关于ruby - pubnub 发布不发布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32886003/

相关文章:

ruby-on-rails - 如何使用github repo作为CDN服务器上传 Assets 文件?

mysql - 如何生成 ActiveRecord 查询

ruby-on-rails - Rails 通过 ids 查找列为 true 的地方

Ruby 评估顺序

ruby - 类型错误 : can't define singleton (RSpec)

ruby-on-rails - RSpec:未定义方法 `infer_spec_type_from_file_location!',用于 #<RSpec::Core::Configuration:0x00000103bc6020>(NoMethodError)

ruby-on-rails - 如何从 Rails 中的多个表关联中获取数据?

ruby-on-rails - 否定 ActiveRecord 查询范围

巨大字符串上的 Ruby 字符串操作

ruby-on-rails - 不选择 updated_at 属性就无法在 Rails 4 中更新模型