我很难弄清楚如何使用Rails来做到这一点,尽管可能是因为我不知道它的正确用语。
我基本上想要这样做:
def my_action
sleep 1
# output something in the request, but keep it open
print '{"progress":15}'
sleep 3
# output something else, keep it open
print '{"progress":65}'
sleep 1
# append some more, and close the request
print '{"sucess":true}'
end
然而,我无法弄清楚如何做到这一点。我基本上想要复制一个缓慢的互联网连接。
我需要这样做,因为我正在抓取网站,这需要时间,我在上面“睡觉”。
更新 我正在使用iOS阅读本文,所以我认为我不想要一个websocket服务器。
答案 0 :(得分:0)
你可能想要阅读HTML5 WebSockets(旧版浏览器有向后兼容的黑客),它可以让你从服务器将数据推送到客户端。
Rails有许多方法可以实现WebSockets服务器。这个问题提供了一些选项Best Ruby on Rails WebSocket tool
答案 1 :(得分:0)
如果这可以在服务器端工作,你会如何在客户端处理它? HTTP请求通常只能有一个响应(在使用流时可能会被分块,这在我认为的情况下不起作用)。
我猜你要么必须查看websockets,要么为每一步做出单独的请求。
答案 2 :(得分:0)
也许这正是您所寻找的: