Only use spool messages for authenticated users.

This commit is contained in:
Martin Edenhofer 2013-06-23 00:33:16 +02:00
parent 0dad3bbcf3
commit c986db8b37
2 changed files with 26 additions and 22 deletions

View file

@ -33,16 +33,18 @@ class LongPollingController < ApplicationController
if params['data']['action'] == 'spool'
log 'notice', "request spool data", client_id
spool = Session.spool_list( params['data']['timestamp'], current_user.id )
spool.each { |item|
if item[:type] == 'direct'
log 'notice', "send spool to (user_id=#{ current_user.id })", client_id
Session.send( client_id, item[:message]['data'] )
else
log 'notice', "send spool", client_id
Session.send( client_id, item[:message]['data'] )
end
}
if current_user
spool = Session.spool_list( params['data']['timestamp'], current_user.id )
spool.each { |item|
if item[:type] == 'direct'
log 'notice', "send spool to (user_id=#{ current_user.id })", client_id
Session.send( client_id, item[:message]['data'] )
else
log 'notice', "send spool", client_id
Session.send( client_id, item[:message]['data'] )
end
}
end
# send spool:sent event to client
sleep 0.2

View file

@ -139,20 +139,22 @@ EventMachine.run {
if data['action'] == 'spool'
log 'notice', "request spool data", client_id
spool = Session.spool_list( data['timestamp'], @clients[client_id][:session]['id'] )
spool.each { |item|
if @clients[client_id][:session]['id']
spool = Session.spool_list( data['timestamp'], @clients[client_id][:session]['id'] )
spool.each { |item|
# create new msg to push to client
msg = JSON.generate( item[:message] )
# create new msg to push to client
msg = JSON.generate( item[:message] )
if item[:type] == 'direct'
log 'notice', "send spool to (user_id=#{ @clients[client_id][:session]['id'] })", client_id
@clients[client_id][:websocket].send( "[#{ msg }]" )
else
log 'notice', "send spool", client_id
@clients[client_id][:websocket].send( "[#{ msg }]" )
end
}
if item[:type] == 'direct'
log 'notice', "send spool to (user_id=#{ @clients[client_id][:session]['id'] })", client_id
@clients[client_id][:websocket].send( "[#{ msg }]" )
else
log 'notice', "send spool", client_id
@clients[client_id][:websocket].send( "[#{ msg }]" )
end
}
end
# send spool:sent event to client
log 'notice', "send spool:sent event", client_id