new - creates a new server
# File lib/xmpp4r/rpc/helper/server.rb, line 24 def initialize(stream,class_delim=".") super(class_delim) @stream = stream @stream.add_iq_callback(120,"Helpers::RPCServer") { |iq| if iq.type == :set and iq.type != :result handle_iq(iq) true else false end } end
handles incoming iqs
the jabber iq
# File lib/xmpp4r/rpc/helper/server.rb, line 40 def handle_iq(iq) if iq.type == :set if iq.query.kind_of?(IqQueryRPC) data = iq.query response = IqQueryRPC.new data.elements.each { |rpc| if rpc response.typed_add(handle_rpc_requests(rpc)) end } respiq = iq.answer(false) respiq.type = :result respiq.add(response) @stream.send(respiq) end end end
handles the rpc requests
# File lib/xmpp4r/rpc/helper/server.rb, line 64 def handle_rpc_requests(rpcdata) resp = process(rpcdata.to_s) if resp == nil or resp.size <= 0 raise Jabber::ErrorResponse.new(:forbidden) else return resp end end