gpt4 book ai didi

javascript - Firefox 不处理服务器发送的事件方法

转载 作者:行者123 更新时间:2023-11-30 06:27:48 25 4
gpt4 key购买 nike

我正在使用 ActionController::Live 和自定义 SSE 库构建 Rails 应用程序,我的服务器是 puma,rails 版本是 4 这是我 Controller 中的代码:

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

这是我用来处理 SSE 的 application.js 文件

$(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 页面时,它都不会处理流,而是显示将流下载为文本文件的选项。我不明白为什么会这样。

最佳答案

我对 SSE 的理解在这里有问题,SSE 和我正在工作的页面/ Controller ,我把它们作为一个,我试图在 firefox 或 chrome 中查看 SSE 的 Controller 。我对 SSE 的理解很差。 SSE Controller 和我要触发事件的页面是完全不同的。我在本教程结束时得到了这个答案

http://tenderlovemaking.com/2012/07/30/is-it-live.html

希望你们也明白了。

关于javascript - Firefox 不处理服务器发送的事件方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19994397/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com