class Discordrb::Session

This class stores the data of an active gateway session. Note that this is different from a websocket connection - there may be multiple sessions per connection or one session may persist over multiple connections.

Attributes

sequence[RW]
session_id[R]

Public Class Methods

new(session_id) click to toggle source
# File lib/discordrb/gateway.rb, line 96
def initialize(session_id)
  @session_id = session_id
  @sequence = 0
  @suspended = false
  @invalid = false
end

Public Instance Methods

invalid?() click to toggle source
# File lib/discordrb/gateway.rb, line 122
def invalid?
  @invalid
end
invalidate() click to toggle source

Flags this session as being invalid

# File lib/discordrb/gateway.rb, line 118
def invalidate
  @invalid = true
end
resume() click to toggle source

Flags this session as no longer being suspended, so we can resume

# File lib/discordrb/gateway.rb, line 113
def resume
  @suspended = false
end
should_resume?() click to toggle source
# File lib/discordrb/gateway.rb, line 126
def should_resume?
  suspended? && !invalid?
end
suspend() click to toggle source

Flags this session as suspended, so we know not to try and send heartbeats, etc. to the gateway until we've reconnected

# File lib/discordrb/gateway.rb, line 104
def suspend
  @suspended = true
end
suspended?() click to toggle source
# File lib/discordrb/gateway.rb, line 108
def suspended?
  @suspended
end