我的rails應用程序中有faye實現。當兩個瀏覽器位於同一臺計算機上時,發佈方法正常工作。當我從另一臺計算機上的另一臺瀏覽器訪問應用程序時,它只能從客戶端到服務器進行工作,並且不會發布到其他客戶端。此外,當服務器上的瀏覽器發生更改時,發佈事件不會推送到客戶端。
控制器發佈的代碼:當在網絡中的另一臺計算機上使用瀏覽器時,Faye不會發布
def publish(channel, data)
message = {
:channel => channel,
:data => data,
:ext => {:faye_token => FAYE_OUTGOING_AUTH_TOKEN}
}
uri = URI.parse('http://localhost:9292/faye')
Net::HTTP.post_form(uri, :message => message.to_json)
end
命令運行菲:
rackup faye.ru -s thin -E production -d
實施例:
一個:服務器, B:客戶端1, C:客戶機2
AB和C是不同的計算機在同一網絡中,並且都訂閱了相同的頻道。
- 如果B I輸入數據,A將看到數據但是C不會看到數據,直到我刷新頁面(這是從數據庫中獲取數據)。
- 如果我在A上輸入數據,它不會發布到其他客戶端。
- 如果C I的輸入數據,以僅C和B訂閱,是僅含有C得到看到的數據,並且它不發佈到B.
如果A,B,和信道C是同一臺計算機上的不同瀏覽器,所有上述情況都可以使用。
我已經在開發模式下運行了這個,並嘗試過WEBrick,Unicorn和Thin。
任何幫助,將不勝感激。 謝謝。
所以我用'URI = URI.parse(的「http://本地主機:9292 /菲」)'線與其它計算機上它是試圖訪問它自己的** localhost **,這與主要的faye地址不同。通過使它們指向我的服務器地址uri = URI.parse('http:// SERVER_IP:9292/faye')',問題就解決了。 –
我也解決了這個問題 請通過這個http://stackoverflow.com/questions/23650534/faye-is-not-available-on-client-browser-for-node-js/23662899#23662899 – Pulkit