我一直在使用actionController :: live和流式传输Linux控制台应用程序到我的webclient。
我正在尝试构建自己的wifi路由器界面来显示wifi信号,下载速度以及使用wpa_supplicant进行一些身份验证等内容
我使用了你在actioncontroller :: live的文档中找到的基本示例,以及在客户端更新div的一些jquery。
从我的控制器我可以做这样的事情来模拟一个wifi信号强度进度条。
Loop do
Response.stream.write(File.read('/proc/net/wireless'))
End
通过一点点数学可以轻松地以进度条的形式显示wifi实力的实时流...
因此,在运行系统命令之前,这里没有太大问题。
stream.write(`ping googleDOTcom`.each_line{|line| p line+'<br>') }
如果多个Web客户端查看此流,则控制器将启动多个进程...
2个问题我希望讨论选项或解决方案......我怎样才能启动像ping GOOGLE
这样的应用程序,并让多个Web客户端查看相同的流。另外,我如何通过仅启动ping GOOGLE
非常感谢您的评论。
答案 0 :(得分:0)
我建议您将其转换为模型操作,而不是将其作为控制器操作。然后获取结果并尝试将它们作为属性保存在数据库中。
您可以稍微概括一下检查,以允许用户指定要ping的终端主机。然后你应该看看活跃的工作。我计划一个定期间隔作业,它将根据模型ID实例化一个检查并将结果保存到DB。用户只是查看这些计划检查的结果。
它肯定会削减你的服务器所做的工作,并且会阻止某人利用长时间运行的命令来破坏你的服务。