gpt4 book ai didi

javascript - Ruby on rails onError 方法中的事件源直播

转载 作者:行者123 更新时间:2023-11-30 05:42:34 24 4
gpt4 key购买 nike

我正在尝试使用 Event Wource API 和 Action Controller 实时实现基本的 Rails 4 代码。一切都很好,但我无法联系到事件监听器。

Controller 代码:

  class HomeController < ApplicationController
include ActionController::Live
def tester
response.headers["Content-Type"] = "text/event-stream"
3.times do |n|
response.stream.write "message: hellow world! \n\n"
sleep 2
end
end

js代码:

var evSource = new EventSource("/home/tester");

evSource.onopen = function (e) {
console.log("OPEN state \n"+e.data);
};

evSource.addEventListener('message',function(e){
console.log("EventListener .. code..");
},false);

evSource.onerror = function (e) {
console.log("Error State \n\n"+e.data);
};

当我重新加载页面时,我的控制台输出是“打开状态”,然后是“错误状态”。事件监听器代码未显示。

  1. 当我 curl 页面时,正在显示“消息:Hellow world!”

  2. 我在development.rb中改过

    config.cache_classes = true
    config.eager_load = true

  3. 我的浏览器是 chrome 和 firefox 是最新版本,所以没有问题

我哪里不见了?请提出建议!

最佳答案

服务器发送事件的事件格式是

"data: message text\n\n"

所以,在你的情况下应该是这样的:

response.stream.write "data: hello world! \n\n"

检查 this MDN page供引用。

关于javascript - Ruby on rails onError 方法中的事件源直播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19898523/

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