faye ruby client is not working

冷暖自知 提交于 2019-12-03 00:42:59

You were almost there... You just needed to stop the EM event loop in your callbacks, like this:

EM.run do
  client = Faye::Client.new('http://localhost:9292/faye')
  publication = client.publish("/faye/new_chats", {
    "user" => "ruby-logger",
    "message" => "Got your message!"
  })
  publication.callback do
    puts "[PUBLISH SUCCEEDED]"
    EM.stop_event_loop
  end
  publication.errback do |error|
    puts "[PUBLISH FAILED] #{error.inspect}"
    EM.stop_event_loop
  end
end

I finally used HTTP not the Ruby Faye client as described in railscasts episode 260.

require 'net/http'
    message = {:channel => '/faye/new_chats', :data => self.text, :ext => {:auth_token => FAYE_TOKEN}}
    uri = URI.parse("http://localhost:9292/faye")
    Net::HTTP.post_form(uri, :message => message.to_json)

It solves my problem.

NOTE: This solution only works with HTTP but not with HTTPS. If any one find a solution for HTTPS plz update me.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!