class FrCable::HttpHandler

Public Instance Methods

channel_class(room) click to toggle source
# File lib/fr_cable/http_handler.rb, line 4
def channel_class(room)
  @channel_class ||= {}
  @channel_class[room] ||= begin
    splited_room_name = room.split(":")
    splited_room_name[0].constantize.new({room: splited_room_name[1]})
  end
  @channel_class[room]
end
connect(connection_uuid) click to toggle source
# File lib/fr_cable/http_handler.rb, line 47
def connect connection_uuid
  result = connection_class.connected(connection_uuid)
  if result
    ::FrCable::HTTPClient.post(::FrCable::Rack.config[:socket_server_url], body: {type: 'accept_connection', payload: connection_uuid}.to_json)
  else
    ::FrCable::HTTPClient.post(::FrCable::Rack.config[:socket_server_url], body: {type: 'deny_connection', payload: connection_uuid}.to_json)
  end
end
connection_class() click to toggle source
# File lib/fr_cable/http_handler.rb, line 13
def connection_class
  @connection_class ||= ::ApplicationCable::Connection.new
end
disconnect(connection_uuid) click to toggle source
# File lib/fr_cable/http_handler.rb, line 56
def disconnect connection_uuid
  connection_class.disconnected(connection_uuid)
end
message(payload) click to toggle source
# File lib/fr_cable/http_handler.rb, line 17
def message payload
  connection_uuid = payload["connection_uuid"]
  room = payload["room"]
  message = payload["message"]
  
  channel_class(room).receive(message)
end
subscribe(payload) click to toggle source
# File lib/fr_cable/http_handler.rb, line 25
def subscribe payload
  connection_uuid = payload["connection"]
  room = payload["room"]
  uuid = payload["subscription"]

  result = channel_class(room).subscribed(connection_uuid)
  if result
    ::FrCable::HTTPClient.post(::FrCable::Rack.config[:socket_server_url], body: {type: 'accept_subscription', payload: uuid}.to_json)
  else
    ::FrCable::HTTPClient.post(::FrCable::Rack.config[:socket_server_url], body: {type: 'deny_subscription', payload: uuid}.to_json)
  end
end
unsubscribe(payload) click to toggle source
# File lib/fr_cable/http_handler.rb, line 38
def unsubscribe payload
  connection_uuid = payload[:connection_uuid]
  room = payload[:room]
  uuid = payload[:uuid]

  channel_class(room).unsubscribed(connection_uuid)

end