2015-10-01 16 views
5

Tôi đang cố gắng xuất bản một tin nhắn lên kênh pubnub nhưng không xuất bản trên máy chủ. Tuy nhiên nó hoạt động hoàn toàn tốt trên máy địa phương. Bất kỳ ý tưởng mà tôi đang làm sai?Xuất bản pubnub không xuất bản

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 đang được khởi chạy trên toàn cầu cho ứng dụng.

Trả lời

6

Được rồi với một số nghiên cứu và gỡ lỗi Tôi có thể khắc phục vấn đề này. Vấn đề này đã xảy ra vì, theo mặc định, các phép toán Ruby không đồng bộ. Vì vậy, kịch bản được chấm dứt trước khi xuất bản hoàn tất. May mắn thay, chúng tôi có một tùy chọn http_sync cho phương thức xuất bản của pubnub này. Đặt nó thành true đảm bảo rằng luồng đó không bị chấm dứt trước khi xuất bản hoàn tất. Vì vậy, mã mới là

$pubnub.publish(
    http_sync: true, 
    channel: "chat_ABC", 
    message: message 
) do |env| 
    puts env.parsed_response 
end 
Các vấn đề liên quan