views:

91

answers:

2

(newbie alert)

I need to program a multiparty communication service for a course project, and I am considering XMPP for it.

The service needs following messaging semantics:

1) server will provide a method of registering and unregistering an address such as [email protected]/SomeResource. (for now I will do it manually).

2) server will provide a method of forwarding incoming messages from, say, [email protected]/SomeResource to [email protected]/someOtherResource, assuming that the latter is registered, and a method for removing this forwarding. (for now I will do it manually).

3) anonymous clients can send messages to, say, [email protected]/someresource (one way traffic only). If there is any forwarding setup, the message will be forwarded. Finally if the address is [email protected]/someresource is registered, the message will be stored for later delivery (or immediate if a retrieving client is online - see below). If no forwarding and unregistered, message will be silently dropped.

4) clients can connect and retrieve messages from a registered address. Exact method of authenticating clients (e.g., passwords?) is yet to be determined.

  • Eventually, I want to add support for clients to connect from a web browser so they can register/unregister and set/remove forwarding themselves.

Thus, the server will have to do some non-standard switching. Will I need to implement an XMPP server for this? I guess some (or all?) of this can also be done using a XMPP client bot

+1  A: 

You could probably get away with using a message queue like ActiveMQ for the communication and Apache Camel for the routing/forwarding/processing.

scompt.com
Checking out the two. Will give feedback soon. Other answers welcome too :)
Jus12
+2  A: 

You might investigate whether Pub/Sub is a better fit for your problem than custom messaging semantics. If so, you may find an implementation of it in your existing XMPP server.

Joe Hildebrand