views:

25

answers:

0

I have no experience of XMPP but undertsand it's an extensible realtime messaging protocol.

What I don't really have a feel for are the architectural components that I'd need to put in place if I were going to use it to meet my requirements. I'm building a pseudo peer to peer application to allow users to collaborate. All message payloads would be XML. Roughly, my app needs to support the following:

  • I need an Android peer to be able to submit queries to a group of (unrelated and unknown) Android peers. These can be fairly basic queries - 'who is available?' / 'who has capability x?'
  • I'd then need all peers who meet the query to respond with a basic 'I'm here'.
  • The initiating peer then sends some chunk of XML to one of the peers who responded to the query.
  • The receiving peer may at some point in the future send a return message.
  • The peers do not know each other to start with - rather they discover those they are interested in / who are also collaborating via the queries.

I'm clearly going to need a client side app (I know about Smack API), but what do I need at the server end? How do I provide the meeting point for peers? How do I ensure my query messages reach peers who are interested in hearing them?

Appreciate any advice.