trabajo-afectivo/lib/sessions/event/base.rb

69 lines
1.5 KiB
Ruby
Raw Normal View History

2015-12-09 13:09:37 +00:00
class Sessions::Event::Base
def initialize(params)
params.each { |key, value|
instance_variable_set "@#{key}", value
}
@is_web_socket = false
return if !@clients[@client_id]
@is_web_socket = true
end
def websocket_send(recipient_client_id, data)
msg = if data.class != Array
"[#{data.to_json}]"
else
data.to_json
end
2015-12-09 13:09:37 +00:00
if @clients[recipient_client_id]
log 'debug', "ws send #{msg}", recipient_client_id
@clients[recipient_client_id][:websocket].send(msg)
else
log 'debug', "fs send #{msg}", recipient_client_id
Sessions.send(recipient_client_id, data)
end
end
def valid_session?
if !@session
error = {
event: 'error',
data: {
state: 'no_session',
},
}
Sessions.send(@client_id, error)
return
end
if !@session['id']
error = {
event: 'error',
data: {
state: 'no_session_user_id',
},
}
Sessions.send(@client_id, error)
return
end
true
end
2015-12-09 13:09:37 +00:00
def log(level, data, client_id = nil)
if !@options[:v]
return if level == 'debug'
end
if !client_id
client_id = @client_id
end
# rubocop:disable Rails/Output
puts "#{Time.now.utc.iso8601}:client(#{client_id}) #{data}"
#puts "#{Time.now.utc.iso8601}:#{ level }:client(#{ client_id }) #{ data }"
# rubocop:enable Rails/Output
end
def destroy
end
end