我正在尝试寻找一种有效的方式来查看网页上的服务器日志。我不介意 build 一颗 gem ;我只想找出最好的方法。
有没有办法通过 Ruby(不是任何框架)和浏览器保持对文件的流打开?还是必须通过每 x 秒轮询一次文件来完成?
最佳答案
这是一个常见的问题。您不能真正“轻松”地流式传输到浏览器。最后,您必须在客户端有一些小的 javascript 位来处理和显示传入的数据,并在服务器端有一个单独的服务器进程来读取文件并将数据泵回客户端。
如今大多数浏览器都支持 WebSockets,它允许浏览器客户端和服务器端的任何服务之间进行双向直接通信。这就是我要使用的。
在 WebSockets 出现之前,您会遇到各种使用 AJAX 长轮询或其他变通方法的黑客攻击。但今天我要说的是 WebSockets。
有几个用于 ruby 的 WebSocket 库,这使得在服务器端和客户端上设置这样的东西变得更容易:
Best Ruby on Rails WebSocket tool
Google - Ruby Websockets
另外,为了获得灵感,您可能想看看您正在尝试做的事情的 node.js 实现:
frontail(1) – tail -F output in browser
使用 Socket.IO用于其通信实现。
关于ruby - 使用 Ruby 将文件流式传输到浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17127721/