[Standards] NEW: XEP-0225 (Component Connections)

Matthias Wimmer m at tthias.eu
Fri Aug 10 08:26:04 UTC 2007


Hi Justin!

Justin Karneges schrieb:
>>>> I don't have a strong preference really. A component feels a bit more
>>>> like a client because it is a local connection, plus c2s connections are
>>>> simpler than s2s connections. Let's pick one and be done with it. :)
>>> The reason why I for the most part suggest using jabber:server instead
>>> of jabber:client is, that in the jabber:client namespace the from
>>> attribute on stanza is optional, while on jabber:server it is not. I
>>> think this is one of the biggest differences between these two
>>> namespaces.
>> In fact I think it's the only difference. ;-)
> There's an even bigger one: server connections can only send stanzas in one 
> direction.  Although that's more of a protocol thing than a schema thing, if 
> you want to get picky. :)

That's exactly what I thought. You will probably implement s2s and 
component connections in different components, so that the protocol part 
is not that important. - But the schema is shared between both if they 
use the same namespace. That's why I would pick the jabber:server namespace.

BTW: Even jabber:server connections do not have to be unidirectional, 
that is only a (current) restriction if you use SASL for authentication. 
(It meight even happen, that this restriction will be dropped sometime 
in the future, at least I would not be surprized.)

>> As I said, I think there are reasons to go with either jabber:client or
>> jabber:server. It may more more a matter of picking one than choosing
>> based on some reasoning.
> 
> I always figured components were more like clients than servers.  Clients and 
> components make single outbound connections, and construct and parse stanzas 
> for server routing.  In contrast, servers do very little stanza manipulation 
> (and, depending on how your server is designed, even the roster stuff might 
> be in a component).

... you might even do the roster stuff on a different server, that is 
connected using a s2s connection to the other server. I already set this 
up once.

 > It is stanza manipulation that really kicks your ass
> when it comes to the different namespaces, and so sharing the same one as 
> clients would be useful I think.

In jabberd14 and as you (?) said at least in jabberd2 as well (don't 
know the other servers) all handling is internally done in the same 
namespace. This can be jabber:server (like in jabberd14 for the reasons 
from above) or jabber:client (like in jabberd2) and does not make a big 
difference for the server (it's just reading both namespaces as the same 
namespace and when serializing XML it's using the expected namespace on 
that connection to serialize the common internal namespace).

So if everybody else preferes the jabber:client namespace I can live 
with that. But I'd prefere to use 'jabber:server'. Even if have a bit of 
the expression, that people merely prefere 'jabber:client' just because 
more people seem to work on clients or client connections were they are 
more used with using 'jabber:client' as the standard namespace, than 
working on s2s connections.


Matthias



More information about the Standards mailing list