2017-08-31 58 views

回答

0

Ruby on Rails有ActionCable它使用websockets使用发布/订阅方法使浏览器保持最新状态。

编辑Faye-websocket是一个websocket的实现,不需要任何框架,只需一个Rack兼容的Web服务器。

根据您的需求,可能有预建的应用程序可用。例如,如果您想要一个带有可更新的小部件的仪表板,您可以使用Smashing

+0

对不起 - 没有去轨道上的红宝石....我想要简单的例如nodemon for JavaScript – Ruegen

+0

Faye&Smashing是非常棒的推荐,但我不明白他们如何在终端上使用静态HTML,比如httpd – Ruegen

0

除了马克的回答,iodine是一个Ruby HTTP和WebSocket的服务器用C写的

它拥有一个基本的静态文件服务以及为WebSocket连接(使用的WebSocket回调对象)的原生支持。

静态文件服务甚至不需要Ruby应用程序。即:

$ iodine -www ./ 

碘还支持发布/订阅(有或没有的Redis)开箱,移动很多的工作量出红宝石层和进入C发动机。

虽然当前默认使用的线程和进程数量与计算机上的核心数量(优先于并发性能)相同,但可以在单线程模式下运行碘(由于其设计是平坦的)。

使用Rails时,可以使用碘代替ActionCable,方法是使用中间件(定制的或例如Plezi gem)捕获WebSocket连接。

作为作者,我有点偏颇,但我认为这是一个简单的解决方案来实现,我的测试表明它的性能显着提高。

+0

它具有监视能力吗?所以你不需要刷新浏览器? – Ruegen

+0

@吕根 - 我不确定你的意思是“看守者”。如果你指的是一个WebSocket,它允许你在不刷新页面的情况下更新实时数据 - 是的,这是碘的关注特性。碘也使用ETags进行缓存验证,所以如果你的意思是“注意文件费用”,你可以这么说,但浏览器仍然需要重新加载页面才能测试缓存验证。 – Myst

+0

Guard for rails有一个实时重载gem,允许我在写入文件更改时自动更新/刷新浏览器。我想在httpd中(或类似的工具)。 – Ruegen