module ManagerRemoteSocketDisconnect

Public Instance Methods

disconnect_all_with_message(message) click to toggle source
# File lib/mrpin/core/remote/socket/base/extensions/manager_remote_socket_disconnect.rb, line 53
def disconnect_all_with_message(message)
  response             = Api::ResponseSessionEnd.new
  response.description = message

  unless @logger.nil?
    @logger.info "disconnect all with #{message}"
  end

  @sessions_locker.synchronize do
    @sessions.each do |session|
      send_response_and_close(session, response)
    end

    @sessions.clear
  end

  nil
end
disconnect_inactive() click to toggle source
# File lib/mrpin/core/remote/socket/base/extensions/manager_remote_socket_disconnect.rb, line 22
def disconnect_inactive
  response             = Api::ResponseSessionEnd.new
  response.description = EStringTypeBase::EST_ERROR_PLAYER_INACTIVE

  inactive_players_count = 0

  @sessions_locker.synchronize do

    time_last_request = Time.now.to_i - 20.minutes

    @sessions.reject! do |session|

      result = session.time_last_request < time_last_request

      if result
        send_response_and_close(session, response)

        inactive_players_count += 1
      end #if

      result
    end #reject!

  end #mutex

  @logger.info "disconnect inactive #{inactive_players_count} players"

  nil
end

Protected Instance Methods

send_response_and_close(session, response) click to toggle source

methods

# File lib/mrpin/core/remote/socket/base/extensions/manager_remote_socket_disconnect.rb, line 12
def send_response_and_close(session, response)
  session.callback_on_disconnect    = nil
  session.should_disconnect_session = false
  session.send_response(response)
  session.close_connection_after_writing

  nil
end