为什么 Ruby on Rails/JS 的 SSE 连接会意外关闭?

Why is SSE Connection Closing Unexpectedly with Ruby on Rails/JS?

提问人:Anjali 提问时间:7/20/2022 更新时间:7/20/2022 访问量:80

问:

我有以下代码来触发仅中继时间的服务器端事件(仅用于测试目的)。

  def check_record_status
    response.headers['Content-Type'] = 'text/event-stream'
    sse = SSE.new(response.stream, event: "deploymentRecordUpdate")
    puts sse
    begin
      sse.write({ :id => 1, :time => DateTime.now })
    rescue ClientDisconnected
    ensure
      sse.close
    end
  end

此外,在控制台上,我运行:

var source = new EventSource('/live_status');
source.addEventListener("deploymentRecordUdpate", function(event) {
  data = JSON.parse(event.data);
  console.log(data);
});

但是,我注意到在运行后端服务器的终端上,GET 请求被多次发送到控制器。根据我的理解,服务器端事件应该发起一次 HTTP 请求,然后进行维护。连接是否意外关闭,或者是预期的行为。

JavaScript Ruby-on-rails WebSocket 服务器端

评论


答: 暂无答案