[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