module Seamless
class Dispatcher
include Singleton
def serialize(session,body)
queue = session['_seamless_mq']
body << ''
body << ""
if queue
queue.each do |msg|
body << msg
end
session['_seamless_mq']=[]
end
body << ''
end
def outgoing(obj,type,message)
queue = obj['session']['_seamless_mq']
if !queue
queue = [];
obj['session']['_seamless_mq'] = queue
end
#TODO requestid
queue << "'
end
def incoming(session,request,response)
body = request.env['RAW_POST_DATA']
if body
node = REXML::Document.new(body)
node.root.each_element('//message') do |message|
requestid = message.attributes['requestid']
type = message.attributes['type']
text = message.text
msg = JSON.parse(text)
req = {'requestid'=>requestid, 'session'=>session}
MessageBroker.send(req,type,msg)
end
end
end
end
end