gpt4 book ai didi

ruby - 在 Sinatra 应用程序中处理事件流连接

转载 作者:太空宇宙 更新时间:2023-11-03 17:39:09 24 4
gpt4 key购买 nike

a great example of a chat app using Server-Sent Events康斯坦丁·哈泽。我正在尝试运行它并遇到回调问题(我使用 Sinatra 1.3.2 并使用 Chrome 16 浏览)。它们根本不运行(例如在页面重新加载后),因此连接数量在增加。

此外,连接会在 30-60 秒内关闭,除非按照 Konstantin 在其他地方的建议设置一个周期性计时器来发送空数据。

你能复制吗?如果是,是否有可能以某种方式解决这些问题? WebSockets 在这方面无缝工作......

# ruby
get '/stream', provides: 'text/event-stream' do
stream :keep_open do |out|
EventMachine::PeriodicTimer.new(20) { out << "data: \n\n" } # added
settings.connections << out
puts settings.connections.count # added
out.callback { puts 'closed'; settings.connections.delete(out) } # modified
end
end

# javascript
var es = new EventSource('/stream');
es.onmessage = function(e) { if (e.data != '') $('#chat').append(e.data + "\n") }; // modified

最佳答案

这是 Sinatra 中的错误 https://github.com/sinatra/sinatra/issues/446

关于ruby - 在 Sinatra 应用程序中处理事件流连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8718860/

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