Class: AnyCable::RPC::Handler

Inherits:
Object
  • Object
show all
Includes:
AnyCable::RPC::Handlers::Command, AnyCable::RPC::Handlers::Connect, AnyCable::RPC::Handlers::Disconnect
Defined in:
lib/anycable/rpc/handler.rb

Overview

Generic RPC handler

Instance Method Summary collapse

Methods included from AnyCable::RPC::Handlers::Command

#command

Methods included from AnyCable::RPC::Handlers::Disconnect

#disconnect

Methods included from AnyCable::RPC::Handlers::Connect

#connect

Constructor Details

#initialize(middleware: AnyCable.middleware) ⇒ Handler

Returns a new instance of Handler.



15
16
17
18
# File 'lib/anycable/rpc/handler.rb', line 15

def initialize(middleware: AnyCable.middleware)
  @middleware = middleware
  @commands = {}
end

Instance Method Details

#handle(cmd, data, meta = {}) ⇒ Object



20
21
22
23
24
# File 'lib/anycable/rpc/handler.rb', line 20

def handle(cmd, data, meta = {})
  middleware.call(cmd, data, meta) do
    send(cmd, data)
  end
end

#supported?(cmd) ⇒ Boolean

Returns:

  • (Boolean)


26
27
28
# File 'lib/anycable/rpc/handler.rb', line 26

def supported?(cmd)
  %i[connect disconnect command].include?(cmd)
end