jam-cloud/websocket-gateway/lib/jam_websockets/client_context.rb

36 lines
901 B
Ruby

module JamWebsockets
class ClientContext
attr_accessor :user, :client, :msg_count, :session, :client_type, :sent_bad_state_previously
def initialize(user, client, client_type)
@user = user
@client = client
@client_type = client_type
@msg_count = 0
@session = nil
@sent_bad_state_previously = false
client.context = self
end
def to_s
return "Client[user:#{@user} client:#{@client.client_id} msgs:#{@msg_count} session:#{@session} client_type:#{@client_type} channel_id: #{@client.channel_id}]"
end
def to_json
{user_id: @user.id, client_id: @client.client_id, msg_count: @msg_count, client_type: @client_type, socket_id: @client.channel_id}.to_json
end
def hash
@client.hash
end
def ==(o)
o.class == self.class && o.client == @client
end
alias_method :eql?, :==
end
end