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.