2


I want to know which protocol does iChat use to start a conversation with other client in LAN ?
is it SIP? or SIP + XMPP? start a session with SIP and exchange message with XMPP? thanks a lot!

seaguest
  • 2,510
  • 5
  • 27
  • 45

2 Answers2

2

It uses Bonjour, XMPP but using multicast DNS for presence, and peer-to-peer connections instead of a server. The protocol was designed by Apple and then openly documented by the XMPP Standards Foundation as XEP-0174: Serverless Messaging.

MattJ
  • 7,924
  • 1
  • 28
  • 33
  • thank you very much, so now we can discover the presence service with the help of jmdns(provides DNS-SD), we know name@host:port. but the problem is how to start a conversation with the client knowing its name@host:port? Is there any suitable library in java? like smack(but smack donesn't support P2P), any library for serverless messaging? I don't want to do the encapsulation for data frame. – seaguest Oct 13 '11 at 13:29
  • I looked at XEP-0174 and tried to establish a socket connection to the bonjour client, and send the string " – seaguest Oct 13 '11 at 20:58
0

So, I understand how does ichat work now. DSN-SD + XEP-0174.
unfortunately there isn't any java library for XEP-0174, but the connection is based on socket.
thanks for everyone's attention.

seaguest
  • 2,510
  • 5
  • 27
  • 45