2015-10-01 4 views
5

Я пытаюсь опубликовать сообщение для pubnub-канала, но не публикую его на сервере. Однако его работа абсолютно прекрасна на локальной машине. Любая идея, где я делаю это неправильно?Публикация Pubnub не публикуется

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 инициализируется глобально для приложения.

ответ

6

Хорошо с некоторыми исследованиями и отладкой. Я могу исправить эту проблему. Эта проблема возникала, потому что по умолчанию операции Ruby являются асинхронными. Таким образом, скрипт завершается до завершения публикации. К счастью, у нас есть опция http_sync для этого метода публикации pubnub. Установив его в true, убедитесь, что этот поток не завершен до завершения публикации. Таким образом, новый код

$pubnub.publish(
    http_sync: true, 
    channel: "chat_ABC", 
    message: message 
) do |env| 
    puts env.parsed_response 
end 
Смежные вопросы