【发布时间】:2011-03-13 18:38:07
【问题描述】:
作为诊断页面的一部分,我希望用户能够运行“ping”,即普通的 shell 命令将 ICMP_ECHO_REQUST 发送到某个 IP 并在浏览器的 div 中动态显示结果。
后端是 Ruby/Rails。
我已经在服务器端运行命令并读取 ping 命令的输出。
我一直在构建网页,这些网页会定期回调服务器以动态更新页面的某些部分。
但在这种情况下存在三个挑战:
- 能够让 ajax 回调到 uri/url 以找到运行 ping 命令的进程
- 理想情况下能够在 ping 命令返回新行数据时更新页面
- 可以选择“中断” ping。使用 ping,我当然可以将选项设置为仅发送 x ping,然后退出,从而无需停止进程。但是我还有另一个工具,即日志查看器,该工具不会在一定数量的行之后自行停止,而是会在不中断的情况下永远持续下去,即使用 Control-C。
我是否设置了一个内存缓存来与运行 ping 的进程会合,还是有更简单的方法?
我进行了很多搜索,认为这应该是一个足够普遍的问题,以至于有一个 rails 插件可以神奇地实现所需的东西,但我根本没有找到太多。
有什么建议或指点吗?
【问题讨论】:
-
它就像一个带有 ping 的聊天应用程序。您可能需要使用 Comet 进行挑战 #2。
标签: ruby-on-rails ajax shell dynamic command