2015-10-01 18 views
5

Ich versuche, eine Nachricht zu Pubnub-Kanal zu veröffentlichen, aber es nicht auf Server veröffentlichen. Jedoch funktioniert es auf lokaler Maschine absolut gut. Irgendeine Idee, wo ich es falsch mache?Pubnub veröffentlichen nicht veröffentlichen

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 wird weltweit für App initialisiert.

Antwort

6

Okay mit etwas Forschung und Debugging kann ich dieses Problem beheben. Dieses Problem trat auf, weil Ruby-Vorgänge standardmäßig asynchron sind. Das Skript wird also beendet, bevor die Veröffentlichung abgeschlossen ist. Zum Glück haben wir eine Option http_sync für diese Veröffentlichungsmethode pubnub. Wenn Sie es auf "true" setzen, wird sichergestellt, dass dieser Fluss nicht beendet wird, bevor die Veröffentlichung abgeschlossen ist. Also neuer Code ist

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