我正在编写一个使用 WebSockets 与其他机器通信的 Rails 应用程序(此过程中没有浏览器和客户端逻辑)。我有一个频道:
class MachinesChannel < ApplicationCable::Channel
def subscribed
...
end
def unsubscribed
...
end
def handle_messages
...
end
end
要接收数据,我知道的唯一方法是 JavaScript 客户端:
ActionCable.createConsumer('/cable').subscriptions.create 'MachinesChannel',
received: (message) ->
@perform('handle_messages')
我可以通过方法从 JS 调用服务器端方法@perform()
。
有什么办法可以省略 JS 部分并以某种方式直接处理传入的数据MachinesChannel
?
理想的情况是让handle_messages
方法接受一个data
参数并让这个方法调用传入的数据。