[jdev] Re: Serverless (peer2peer) jabber sessions

David Waite dwaite at gmail.com
Mon Apr 11 09:57:15 CDT 2005


Oh, I'm just pointing out the difficulty in using a server for true
zeroconf. I know how it works with iChat.

On Apr 11, 2005 1:59 AM, Gareth Simpson <g.simpson at zoo-tech.com> wrote:
> > -----Original Message-----
> > From: David Waite [mailto:dwaite at gmail.com]
> > Sent: 10 April 2005 20:39
> > To: Jabber software development list
> > Subject: Re: [jdev] Re: Serverless (peer2peer) jabber sessions
> 
> > Yes, zero config in my book would require also:
> > 1. A server, if needed, is bundled with a chat client
> > 2. Chat clients can automatically negotiate setting up a
> > server/servers (including race conditions with many clients starting
> > at the same time)
> > 3 ....
> 
> [Snip]
> 
> I can't believe how much you guys are complicating this issue, when Apple
> have it all figured out.
> 
> iChat's rendezvous mode works like this.
> 
> Presence data is all stored in Rendezvous records.
> 
> Every client publishes their avail/dnd/away status and their name in
> Rendezvous.
> 
> Clients scan the network for these records and build up their roster from
> that, a task which Rendezvous makes trivial.
> 
> Chatting is done peer to peer.
> 
> My client sits there listening on a port (the number of which is in my
> rendezvous record). If someone wants to talk to me, they just connect to
> that port and send the <stream> header just like they would to a  jabber
> server.  My client accepts the connection and sends the header back.
> 
> Messages are then sent back and forth.  They are just standard <message>
> packets.  They omit the "from" attribute, since you have a socket per person
> and know where the message came from.
> 
> The conversation ends when one or other side closes the connection.
> 
> And that's it.
> 
> So yes, every client has to be a server, but because the roster stuff is
> handled elsewhere, it's completely trivial - just messages back and forth.
> Once the actual connection is established, neither side even cares which
> side is the server and which is the client.
> 
> There's other stuff like group chat and video and file transfer, but at it's
> most basic it's just
> 
>         Rendezvous for roster/presence
>         Peer to Peer XMPP for messages
> 
> I've hacked Miranda's jabber library to support this stuff and it's taken a
> few hours at most.
> 
> _______________________________________________
> jdev mailing list
> jdev at jabber.org
> http://mail.jabber.org/mailman/listinfo/jdev
>



More information about the JDev mailing list