【发布时间】:2018-01-28 18:33:45
【问题描述】:
我需要在我的 Rails API(仅限)应用程序中使用 Websocket。页面没有任何服务器端呈现。该应用程序是 Angular 和 Xamarin 的纯 JSON 后端。我看到很多教程在 Rails 中使用 coffescript 作为 ActionCable 客户端,但我不是这样。
问题是:如何在 Rails 的咖啡脚本之外使用 ActionCable 作为 API-only,比如 Android、iOS、Angular 和 React 客户端?
我找到了不同且有用的资源,但我还是有点困惑。
1: ActionCable usage for Rails API - 这似乎是最好的,但我怎样才能找到 ActionCable 框架交换的所有 JSON 命令?
2:Similar Question to the mine
3: Rails API Websocket GEM - 好吧,不是ActionCable,但是这家伙已经将coffescript编译成JS并移植到项目中。对移动开发没有用处。
如果有不同的解决方案或更好的知识,请告诉我。我需要“破解”它以使其正常工作。
编辑:我也找到了这个 repo action-cable-js,但是如何集成呢?
【问题讨论】:
-
是否可以选择不使用 ActionCable 的 Websockets?如果是这样,请考虑
iodinegem。它还应该显着提高性能(与 ActionCable 相比)。 -
@Myst 您的回复。该策略并不“那么容易”,因为后端由 N 个 Rails 容器组成,由 Nginx 负载均衡。因此,有一个(或者可能是 M 个负载平衡的)独立的 ActionCable 服务器,作为独立服务器运行。在这种情况下,我认为 iodine 或 ActionCable 是性能问题,但我需要重新设计整个应用程序。我会深入检查宝石。谢谢!
标签: ruby-on-rails websocket ruby-on-rails-5 rails-api actioncable