2016-05-12 15 views
2

所以我試圖用rails和faye構建一個聊天應用程序。並且想要在rails應用程序中運行服務器端faye客戶端,以便處理用戶客戶端退出瀏覽器的斷開連接事件。這樣我可以在我的Rails應用程序中調用控制器操作,從數據庫中刪除一些數據。我能夠使用我的faye機架應用程序檢測用戶標識,但需要將數據進一步發送到導軌。如何在我的Rails應用程序中運行服務器端的faye客戶端?

所以,請幫助,如果你知道如何做到這一點,或有任何其他建議,我可以如何做到這一點。我考慮過的第二個選擇是直接從faye發送郵件請求,但後來我需要一些方法來實現csrf保護。但我更喜歡可以訂閱faye頻道的服務器端客戶端。

+0

您可以在Rails內部安裝機架應用程序 –

+0

我該怎麼做?我一直在看'faye-rails'寶石。 – bim

回答

2

我已經使用「王菲護欄」現在創業板解決了這個,計入我的application.rb中的文件這樣的:

config.middleware.delete Rack::Lock 
config.middleware.use FayeRails::Middleware, mount: '/faye', :timeout => 25 do 
    class RealTime < FayeRails::Controller 
     channel '**' do 
      monitor :unsubscribe do 
       if channel != '/messages' && channel != '/disconnect' 
        user = channel[6..-1] 
        @members = Members.where("username = '#{user}'") 
        data = {:channels => @members, :user => user} 
        RealTime.publish('/disconnect', data) 

        @members.destroy_all 
       end 
      end 
     end 
    end 
    add_extension(RealTime.new)  
end 

我也有針對每個用戶自己的渠道,我用得到用戶名並從數據庫中刪除數據。

相關問題