Tentative d'utilisation de la gemme GroupMe EM-C2DM, https://github.com/groupme/em-c2dm, une bibliothèque Google C2DM Ruby utilisant Event Machine, dans Rails. Je sais que ça devrait marcher sur Heroku car il y a une configuration spécifique à Heroku, mais je n'arrive pas à la faire fonctionner.EventMachine sur Heroku avec Rails et Gemme EM-C2DM
Je m'exécute via un Resque Worker, et le worker fonctionne correctement et est mis en file d'attente et appelé. Cependant, il ne réussit jamais à s'authentifier et ne signale jamais la réponse de la notification push. Il semble juste ne jamais finir.
module PushAndroid
require "eventmachine"
require "em-c2dm"
@queue = :android_push
def self.perform(opts)
puts "entering android push"
EM.next_tick do
EM::C2DM.authenticate(ENV["C2DM_EMAIL"], ENV["C2DM_PASSWORD"])
@push = Push.find(opts['push_id'])
message = "Message #{@push.title}"
push_id = "#{@push.id}"
opts['tokens'].each{ |token|
EM::C2DM.push(token, :message => message, :push_id => push_id) do |response|
if response.success?
puts "success! id=#{response.id}" # ID of sent message
else
puts "response:"
puts response.inspect
#case response.error
#when "InvalidToken"
# reauthenticate
#when "InvalidRegistration"
# clear our registration id
#when "RetryAfter"
# pause sending for response.retry_after seconds
#end
end
end
}
end
end
end
J'ai aussi essayé sans utiliser EM :: next_tick ou EM.next_tick et il obtient l'authentification passé, mais pousse jamais rien, ne renvoie une réponse ou quoi que ce soit. Il n'entre jamais EM :: next_tick en fait.
Des idées pour que cela fonctionne? Ceci est sur Heroku, en utilisant Rails 3.1.1 avec Thin
De mon Gemfile.lock:
thin (1.3.1)
daemons (>= 1.0.9)
eventmachine (>= 0.12.6)
rack (>= 1.0.0)
eventmachine (1.0.0.beta.4)
em-apn (0.0.3)
eventmachine (>= 1.0.0.beta.3)
yajl-ruby (>= 0.8.2)
em-http-request (1.0.2)
addressable (>= 2.2.3)
cookiejar
em-socksify
eventmachine (>= 1.0.0.beta.4)
http_parser.rb (>= 0.5.3)
em-socksify (0.2.0)
eventmachine (>= 1.0.0.beta.4)
remote: git://github.com/groupme/em-c2dm.git
revision: 2d853ff771908785f23b8c64fa5d5508b4eba40a
specs:
em-c2dm (0.0.1)
em-http-request (>= 1.0.0.beta.4)
eventmachine (>= 1.0.0.beta.3)
uuid