我正在玩聊天客户端示例,该示例演示了sinatra中的流和服务器端事件(请参阅https://gist.github.com/rkh/1476463)。请注意,必须调整它以使用现代jquery。具体做法是:
// writing
$(document).on("submit", "form", function(e) {
我开始想到如果我希望广播在一段延迟的时间后发生的话。我可以做一些天真的事情并通过睡眠来修改帖子回复:
post '/' do
sleep 20
settings.connections.each { |out| out << "data: #{params[:msg]}\n\n" }
204 # response without entity body
end
但是,直到20秒睡眠完成后,204实际上才被发送,这很愚蠢。此外,这似乎在5个延迟消息进入后中断。然后在这5个完成睡眠之前不再收到任何帖子。