Renamed Session module to Sessions to avoid conflicts with active record Session module.

This commit is contained in:
Martin Edenhofer 2013-08-21 20:35:22 +02:00
parent 977acf0a52
commit 0eccb81fbc
5 changed files with 37 additions and 35 deletions

View file

@ -26,7 +26,7 @@ class LongPollingController < ApplicationController
# spool messages for new connects
if params['data']['spool']
msg = JSON.generate( params['data'] )
Session.spool_create(msg)
Sessions.spool_create(msg)
end
# get spool messages and send them to new client connection
@ -40,14 +40,14 @@ class LongPollingController < ApplicationController
end
if current_user
spool = Session.spool_list( params['data']['timestamp'], current_user.id )
spool = Sessions.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] )
Sessions.send( client_id, item[:message] )
else
log 'notice', "send spool", client_id
Session.send( client_id, item[:message] )
Sessions.send( client_id, item[:message] )
end
}
end
@ -55,7 +55,7 @@ class LongPollingController < ApplicationController
# send spool:sent event to client
sleep 0.2
log 'notice', "send spool:sent event", client_id
Session.send( client_id, { :event => 'spool:sent', :data => { :timestamp => Time.now.utc.to_i } } )
Sessions.send( client_id, { :event => 'spool:sent', :data => { :timestamp => Time.now.utc.to_i } } )
end
@ -67,13 +67,13 @@ class LongPollingController < ApplicationController
user = User.user_data_full( user_id )
end
log 'notice', "send auth login (user_id #{user_id})", client_id
Session.create( client_id, user, { :type => 'ajax' } )
Sessions.create( client_id, user, { :type => 'ajax' } )
# broadcast
elsif params['data']['action'] == 'broadcast'
# list all current clients
client_list = Session.list
client_list = Sessions.list
client_list.each {|local_client_id, local_client|
if local_client_id != client_id
@ -82,13 +82,13 @@ class LongPollingController < ApplicationController
params['data']['recipient']['user_id'].each { |user_id|
if local_client[:user][:id] == user_id
log 'notice', "send broadcast from (#{client_id.to_s}) to (user_id #{user_id})", local_client_id
Session.send( local_client_id, params['data'] )
Sessions.send( local_client_id, params['data'] )
end
}
# broadcast every client
else
log 'notice', "send broadcast from (#{client_id.to_s})", local_client_id
Session.send( local_client_id, params['data'] )
Sessions.send( local_client_id, params['data'] )
end
else
log 'notice', "do not send broadcast to it self", client_id
@ -119,13 +119,13 @@ class LongPollingController < ApplicationController
# update last ping
sleep 1
Session.touch( client_id )
Sessions.touch( client_id )
# set max loop time to 24 sec. because of 30 sec. timeout of mod_proxy
count = 12
while true
count = count - 1
queue = Session.queue( client_id )
queue = Sessions.queue( client_id )
if queue && queue[0]
# puts "send " + queue.inspect + client_id.to_s
render :json => queue
@ -155,7 +155,7 @@ class LongPollingController < ApplicationController
end
def client_id_verify
return if !params[:client_id]
sessions = Session.sessions
sessions = Sessions.sessions
return if !sessions.include?( params[:client_id].to_s )
return true
end

View file

@ -1,5 +1,7 @@
# Copyright (C) 2012-2013 Zammad Foundation, http://zammad-foundation.org/
require 'ticket/overviews'
class TicketOverviewsController < ApplicationController
before_filter :authentication_check

View file

@ -2,7 +2,7 @@
require 'cache'
require 'user_info'
require 'session'
require 'sessions'
class ApplicationModel < ActiveRecord::Base
self.abstract_class = true
@ -340,7 +340,7 @@ class OwnModel < ApplicationModel
class_name = self.class.name
class_name.gsub!(/::/, '')
Session.broadcast(
Sessions.broadcast(
:event => class_name + ':created',
:data => { :id => self.id, :updated_at => self.updated_at }
)
@ -368,7 +368,7 @@ class OwnModel < ApplicationModel
puts "#{self.class.name.downcase} UPDATED " + self.updated_at.to_s
class_name = self.class.name
class_name.gsub!(/::/, '')
Session.broadcast(
Sessions.broadcast(
:event => class_name + ':updated',
:data => { :id => self.id, :updated_at => self.updated_at }
)
@ -395,7 +395,7 @@ class OwnModel < ApplicationModel
puts "#{self.class.name.downcase} DESTOY " + self.updated_at.to_s
class_name = self.class.name
class_name.gsub!(/::/, '')
Session.broadcast(
Sessions.broadcast(
:event => class_name + ':destroy',
:data => { :id => self.id, :updated_at => self.updated_at }
)

View file

@ -2,7 +2,7 @@ require 'json'
require 'rss'
require 'session_helper'
module Session
module Sessions
# get application root directory
@root = Dir.pwd.to_s
@ -205,7 +205,7 @@ module Session
next if @@client_threads[client_id]
# get current user
session_data = Session.get( client_id )
session_data = Sessions.get( client_id )
next if !session_data
next if !session_data[:user]
next if !session_data[:user][:id]
@ -272,7 +272,7 @@ module Session
files.sort.each {|entry|
filename = path + '/' + entry
if /^send/.match( entry )
data.push Session.queue_file( path, entry )
data.push Sessions.queue_file( path, entry )
end
}
return data
@ -297,7 +297,7 @@ module Session
# list all current clients
client_list = self.list
client_list.each {|local_client_id, local_client|
Session.send( local_client_id, data )
Sessions.send( local_client_id, data )
}
return true
end
@ -552,7 +552,7 @@ class ClientState
while true
# get connection user
session_data = Session.get( @client_id )
session_data = Sessions.get( @client_id )
return if !session_data
return if !session_data[:user]
return if !session_data[:user][:id]
@ -849,7 +849,7 @@ class ClientState
# send update to browser
def send( data )
Session.send( @client_id, data )
Sessions.send( @client_id, data )
end
def log( level, data )

View file

@ -8,7 +8,7 @@ require 'eventmachine'
require 'em-websocket'
require 'json'
require 'fileutils'
require 'session'
require 'sessions'
require 'optparse'
require 'daemons'
@ -91,7 +91,7 @@ EventMachine.run {
ws.onopen {
client_id = ws.object_id.to_s
log 'notice', 'Client connected.', client_id
Session.create( client_id, {}, { :type => 'websocket' } )
Sessions.create( client_id, {}, { :type => 'websocket' } )
if !@clients.include? client_id
@clients[client_id] = {
@ -112,7 +112,7 @@ EventMachine.run {
@clients.delete client_id
end
Session.destory( client_id )
Sessions.destory( client_id )
}
# manage messages
@ -132,7 +132,7 @@ EventMachine.run {
# spool messages for new connects
if data['spool']
Session.spool_create(msg)
Sessions.spool_create(msg)
end
# get spool messages and send them to new client connection
@ -146,7 +146,7 @@ EventMachine.run {
end
if @clients[client_id] && @clients[client_id][:session] && @clients[client_id][:session]['id']
spool = Session.spool_list( data['timestamp'], @clients[client_id][:session]['id'] )
spool = Sessions.spool_list( data['timestamp'], @clients[client_id][:session]['id'] )
spool.each { |item|
# create new msg to push to client
@ -171,7 +171,7 @@ EventMachine.run {
# get session
if data['action'] == 'login'
@clients[client_id][:session] = data['session']
Session.create( client_id, data['session'], { :type => 'websocket' } )
Sessions.create( client_id, data['session'], { :type => 'websocket' } )
# remember ping, send pong back
elsif data['action'] == 'ping'
@ -182,7 +182,7 @@ EventMachine.run {
elsif data['action'] == 'broadcast'
# list all current clients
client_list = Session.list
client_list = Sessions.list
client_list.each {|local_client_id, local_client|
if local_client_id != client_id
@ -203,7 +203,7 @@ EventMachine.run {
if local_client[:meta][:type] == 'websocket' && @clients[ local_client_id ]
@clients[ local_client_id ][:websocket].send( "[#{msg}]" )
else
Session.send( local_client_id, data )
Sessions.send( local_client_id, data )
end
end
}
@ -217,7 +217,7 @@ EventMachine.run {
if local_client[:meta][:type] == 'websocket' && @clients[ local_client_id ]
@clients[ local_client_id ][:websocket].send( "[#{msg}]" )
else
Session.send( local_client_id, data )
Sessions.send( local_client_id, data )
end
end
else
@ -247,7 +247,7 @@ EventMachine.run {
}
# ajax
client_list = Session.list
client_list = Sessions.list
clients = 0
client_list.each {|client_id, client|
next if client[:meta][:type] == 'websocket'
@ -268,7 +268,7 @@ EventMachine.run {
next if client[:disconnect]
log 'debug', 'checking for data...', client_id
begin
queue = Session.queue( client_id )
queue = Sessions.queue( client_id )
if queue && queue[0]
# log "send " + queue.inspect, client_id
log 'notice', "send data to client", client_id
@ -312,12 +312,12 @@ EventMachine.run {
}
# ajax
clients = Session.list
clients = Sessions.list
clients.each { |client_id, client|
next if client[:meta][:type] == 'websocket'
if ( client[:meta][:last_ping].to_i + ( 60 * idle_time_in_min ) ) < Time.now.to_i
log 'notice', "closing idle ajax connection", client_id
Session.destory( client_id )
Sessions.destory( client_id )
end
}
end