def handle_connection(client_id, data, channel)
      _data = @packet_handler.receive(client_id, data)
      if _data
        process_data(client_id, _data)
      else
        # TODO: Better error handling :D
        transmit(client_id, '{"channel":"_error", "mode":"_error", "data":{"code":400, "message":"something went wrong, likely bad data!"}}', true, ChannelManager::FAULT)
      end
    end
def handle_connection(client_id, data, channel)
      _data = @packet_handler.receive(client_id, data)
      if _data
        process_data(client_id, _data)
      else
        # TODO: Better error handling :D
        transmit(client_id, '{"channel":"_error", "mode":"_error", "data":{"code":400, "message":"something went wrong, likely bad data!"}}', true, ChannelManager::FAULT)
      end
    end
Handles received packets from clients and sends them through the {PacketHandler} for pre-processing, then sends it on to {#process_data}
 @param client_id [Integer]
 @param data [String] data received from client
 @param channel [Integer] channel that this packet was sent along