2015-10-01 12 views
5

Sto tentando di pubblicare un messaggio sul canale pubnub ma non si pubblica sul server. Tuttavia funziona perfettamente bene sulla macchina locale. Qualche idea su dove sto sbagliando?Pubnub publish not publishing

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 viene inizializzato globalmente per l'app.

risposta

6

Okay con alcune ricerche e debug sono in grado di risolvere questo problema. Questo problema si verificava perché, per impostazione predefinita, le operazioni di Ruby sono asincrone. Quindi lo script è terminato prima che la pubblicazione sia completa. Fortunatamente abbiamo un'opzione http_sync per il metodo di pubblicazione di questo pubnub. Impostandolo su true si assicura che quel flusso non venga terminato prima che la pubblicazione sia completata. Quindi il nuovo codice è

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