【问题标题】:Communicating with ActionCable from different host与来自不同主机的 ActionCable 通信
【发布时间】:2018-09-11 22:46:53
【问题描述】:

我在一个主机(比如 host1)上有一个 api 服务器,在另一个(host2)上有一个 rails5 应用程序。如果重要的话,Host1 应用程序是用 python 编写的。 Host1 处理传入事件并应将结果以 json 对象的形式发送到 rails 应用程序。 Rails 应该接收这个对象并进一步处理。

将数据从 host1 发送到 host2 上的 action_cable 以使数据为 streamed_from 该通道的正确语法/协议/方式是什么?我可以设置电缆等,但我不知道 host1 应该如何以及在哪里发送它的消息。

我几乎决定将 json 发布到 rails,但这似乎不是 true 方式,因为数据经常更新,而 websocket 似乎是最好的解决方案。

【问题讨论】:

  • 我不熟悉 python,但是为了让 websocket 工作,你必须保持从 host1 到 host2 的 WS 连接以某种方式打开。您可能需要另一个系统,例如 kafka 来完成您正在尝试做的事情
  • 我已经设置了一个测试服务器来通过 WS 接收消息,它运行良好:host1 保持连接并发送有效负载。我的意思是问如何以正确的方式将它们发送到 action_cable。应该有一些格式,如 {"type": "message", "identifier": '...", data: '...'} 因为它是在应用程序内部发送的。

标签: ruby-on-rails websocket actioncable


【解决方案1】:

因此,正如预期的那样,一旦您知道了答案,这将非常简单明了。

This article 是我灵感的主要来源,它比 action_cable 指南更清晰。

简而言之,我必须确保连接是identified_by,并且有一个方法负责数据处理。 主要的警告是尽管在stringifying 中将消息发送到主机1。您只需要在这里小心并仔细检查所有引号/斜杠。

【讨论】:

    猜你喜欢
    • 2012-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-22
    • 2021-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多