class AnyCable::RPC::Handler

Generic RPC handler

def build_env_response(socket)

def build_env_response(socket)
  AnyCable::EnvResponse.new(
    cstate: socket.cstate.changed_fields,
    istate: socket.istate.changed_fields
  )
end

def build_presence_response(socket)

def build_presence_response(socket)
  return unless socket.presence
  info = socket.presence[:info]
  info = info.to_json if info && !info.is_a?(String)
  AnyCable::PresenceResponse.new(
    type: socket.presence.fetch(:type),
    id: socket.presence.fetch(:id),
    info: info
  )
end

def build_socket(env:)

def build_socket(env:)
  AnyCable::Socket.new(env: env)
end

def factory

def factory
  AnyCable.connection_factory
end

def handle(cmd, data, meta = {})

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

def initialize(middleware: AnyCable.middleware)

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

def logger

def logger
  AnyCable.logger
end

def supported?(cmd)

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