iChat 如何开始对话?
Posted
技术标签:
【中文标题】iChat 如何开始对话?【英文标题】:How does iChat start a conversation? 【发布时间】:2011-10-12 09:41:54 【问题描述】:我想知道 iChat 使用哪种协议与局域网中的其他客户端开始对话? 是 SIP 吗?还是 SIP + XMPP? 开始与 SIP 的会话并与 XMPP 交换消息? 非常感谢!
【问题讨论】:
【参考方案1】:它使用Bonjour、XMPP,但使用multicast DNS 表示存在和点对点连接而不是服务器。该协议由 Apple 设计,然后由XMPP Standards Foundation 公开记录为XEP-0174: Serverless Messaging。
【讨论】:
非常感谢,所以现在我们可以借助 jmdns(提供 DNS-SD)发现 Presence 服务,我们知道 name@host:port。但问题是如何与知道其 name@host:port 的客户端开始对话? java中有没有合适的库?像 smack(但 smack 不支持 P2P),任何用于无服务器消息传递的库?我不想对数据框进行封装。 我查看了 XEP-0174 并尝试建立与 bonjour 客户端的套接字连接,并发送字符串“所以,我了解了 ichat 现在是如何工作的。 DSN-SD + XEP-0174. 不幸的是,XEP-0174 没有任何 java 库,但连接是基于套接字的。 感谢大家的关注。
【讨论】:
以上是关于iChat 如何开始对话?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 AppleScript 在 iMessage 中开始新对话?
如何使用 AppleScript 在 iMessage 中开始新对话?
通过 iChatAgent 以编程方式在 iChat 中设置状态