2011-10-12 83 views
2


我想知道iChat使用哪種協議與局域網中的其他客戶端開始對話?
是SIP嗎?或SIP + XMPP? 與SIP開始會話並與XMPP交換消息? 非常感謝!iChat如何開始對話?

回答

2

它使用Bonjour,XMPP,但使用multicast DNS進行存在以及點對點連接而不是服務器。該協議是由Apple設計的,然後由XMPP Standards Foundation公開記錄爲XEP-0174: Serverless Messaging

+0

非常感謝,所以現在我們可以通過jmdns(提供DNS-SD)的幫助發現存在服務,我們知道名稱@host:port。但問題是如何開始與客戶知道其名稱@ host:port的對話? java中有沒有合適的庫?像smack(但是不支持P2P),任何用於無服務器消息的庫?我不想爲數據幀做封裝。 – seaguest

+0

我看着XEP-0174,試圖建立到bonjour客戶端的套接字連接,併發送字符串「 seaguest

0

所以,我明白ichat現在如何工作。 DSN-SD + XEP-0174。
不幸的是,沒有任何XEP-0174的Java庫,但是連接是基於套接字的。
感謝大家的關注。