powered by Jive Software

Architecture Question: XMPP Relay?

I need to relay XMPP from one private network to another using a proprietary transport protocol.

To allow this, I intend to write a simple socket based proxy pair.

  1. In theory, is this going to work?

  2. Is retention of the originating IP address essential for XMPP to ‘‘work’’?

  3. Do I even need to use SMACK or can I simply proxy the data stream from one network to the other?

I guess what I’'m trying to asks is - can I deal with this purely at the networking layer and let XMPP flow over the top?

Many thanks to all who respond



This should work just fine (proxying at network layer without Smack). We’'re actually talking about building support for this type of thing directly into Jive Messenger. The advantage of having direct server support is that you could use only a single connection between the proxy and the server. So:

a --> |-------------|     |------------|
b --> | proxy       | --> |  server    |
c --> |-------------|     |------------|

In that case, three clients (a, b, c) connect to the proxy, and then the proxy makes one connection to the server. We’‘re calling this the “router” protocol. If you just use normal network proxying, you’‘d need to have an individual connection for each client between the proxy and server. There’'s more discussion about this in the latest Jive Messenger group chat transcripts.