2
我建立使用的ActionController :: Live和和自定義SSE庫, 我的服務器是彪馬Rails應用程序處理,和軌道的版本是4,這是我在我的控制器代碼:服務器發送的事件方法不會被火狐
include ActionController::Live
def index
response.headers['Content-Type'] = 'text/event-stream'
ss = Reloader::SSE.new(response.stream)
100.times {
ss.write({ :message => "just checking"}, :event => 'refresh')
sleep 10
}
ensure
ss.close
end
,這是我的圖書館sse.rb文件
class SSE
def initialize io
@io = io
end
def write object, options = {}
options.each do |k,v|
@io.write "#{k}: #{v}\n"
end
@io.write "data: #{JSON.dump(object)}\n\n"
end
def close
@io.close
end
end
,這是我的application.js文件來處理SSE
$(document).ready(function() {
setTimeout(function() {
var source = new EventSource('/');
source.addEventListener('refresh', function(e) {
window.location.reload();
});
}, 1);
});
我正在關注本網站的教程http://tenderlovemaking.com/2012/07/30/is-it-live.html 每當我加載我的Firefox頁面,它不處理流,而是顯示下載流作爲文本文件的選項。我不明白爲什麼會發生這種情況。
上證所是一個王室痛苦的工作。您的設置是否適用於Chrome? –
不,它不在鉻的工作,我只是檢查。我注意到的事情是EventSource方法不能從我在控制檯上看到的東西上工作。 –
好的,這肯定會擴展可能的問題 –