腾讯的IM协议是二进制传输,从TCP/IP底层写起。
XMPP扩展协议Jingle支持语音和视频。
XMPP协议用XML传输,没有二进制传输
官方文档RFC 3920/3921
XMPP一个典型的C/S架构,不利于用户之间文件传输。
Openfire 基于XMPP(Jabber)协议,单台服务器上万用户并发。
XMPPFramework插件
Vendor/CocoaLumberjack —— 用于跟踪XMPP中的内容
Vendor/CocoaAsyncSocket —— XMPP底层网络通讯接口 引入CFNetwork,Security
Vendor/KissXML —— 解析XML 引入libxml2.dylib 搜索search, Header Search Paths 中添加 /usr/include.libxml2 搜索other, Other Linker Flags
导入Extensions,Authentication,Core,Utilities文件后 引入libresolv.dylib 。这时编译会有错误,将Build Options下面的Debug Information Format 改为DWARF
接下来导入XMPPFramework.h文件
用命令行进入项目目录,git commit -m "导入XMPP框架文件",完成git添加
XMPP核心文件
XMPPStream:是开发过程中最主要交互的类,所有扩展和自定义代码均要基于此类进行
XMPPJID:提供了一个不可变JID的实现,遵守NSCopying协议和NSCoding协议
XMPPParser:提供SMPPStream解析使用
XMPPElement:以下三个XMPP元素的基类
XMPPIQ:请求
XMPPMessage:消息
XMPPPresence:出席
XMPPModule:开发XMPP扩展时使用
XMPPLogging:XMPP的日志框架
XMPPInternal:整个XMPP框架内部使用的核心和高级底层内容
XMPPReconnect:如果意外中断,自动重连XMPP流
XMPPRoster:标准的XMPP花名册
XMPPRoom:提供多人聊天支持
XMPPPubSub:提供公共订阅支持