2015-05-10 113 views
0

最近,我一直在寻找一种解决方案来实现实时更新网页,例如Twitter类新闻或实时聊天。我发现了一些方法,例如Pusher服务,faye和相当多的ruby宝石,比如private_pub或sync。在Ruby on Rails中实现实时功能的最佳方式

问题是,这种解决方案似乎不是一个完全正确的方式。推动者是相当昂贵的,事实上我不喜欢在我的项目中使用其他服务。 Faye似乎不安全,而且很难为其实施安全措施。 Private_pub做的是正确的事情,但最后在github上提交的是在2013年,实际上它已经过时了。

总而言之,我发现的方式似乎并不是Rails初创公司的专业级解决方案。我已经提出了是否应该完全切换到NodeJS或其他技术的问题,或者我可以将NodeJS应用程序集成到Rails中?

综上所述,Rails框架是否存在这样的解决方案,或者切换到其他技术是不可避免的?

+0

难道你看[在Plezi框架(https://github.com/boazsegev/plezi)?这是一个带有本地Websockets和RESTful路由支持的Web应用程序服务器+框架。我不确定它是否支持生产,但它可能会提供socket.io的替代方案,允许您与Rails应用程序共享代码。有了一些工作,它可能会替代Rails的一些应用程序。 – Myst

回答

0

MessageBus可能是一个很好的选择。它目前在Discourse中用于实施实时更新。

我也不确定你对Faye的安全性问题是什么。如果所有操作都通过HTTPS以正确的CORS设置运行,则不应该有任何问题。

对于混合的Node/Rails解决方案,您可以将Rails应用程序中的某个更新列表(例如发布和发布通知列表)推送到Redis实例。订阅Redis的Node应用程序然后可以通知客户端向Rails服务器发送请求以获取最新更新。

+0

[我有一个与Node.js和Rails应用程序集成与Redis作为中继的小宝石。](https://github.com/fishbullet/socket_pocket)它只是[realtime-rails]的概述(https:// github.com/mikeatlas/realtime-rails) –

相关问题