—高级软件人才实作培训专家!北京传智播客教育www.itcast.cnXMPP用户登录—高级软件人才实作培训专家!北京传智播客教育www.itcast.cn服务器QQ:张三输出流输入流输出流输入流输出流:用来写数据输入流:用来读数据1你吃饭了吗还没,一起吃不2一旦连接建立,就死盯着输入流,看有没有数据建立长连接IP+端口—高级软件人才实作培训专家!北京传智播客教育www.itcast.cn客户端服务器zhangsan2@teacher.local连接成功password长连接—高级软件人才实作培训专家!北京传智播客教育www.itcast.cnTabbarViewController导航控件器1导航控件器2导航控件器3网络应用程序,有可能绝大多数的控制器都有网络访问需求。都需要经由XMPP来处理!简化XMPP的开发工作。导航控件器4第1个控件器第2个控件器—高级软件人才实作培训专家!北京传智播客教育www.itcast.cnXMPP核心文件,基于TCP的XML流的传输XMPPStream:是开发过程中最主要交互的类,所有扩展和自定义代码均要基于此类进行XMPPParser:供XMPPStream解析使用XMPPJID:提供了一个不可变JID的实现,遵守NSCopying协议和NSCoding协议XMPPElement:以下三个XMPP元素的基类XMPPIQ:请求(加好友)XMPPMessage:消息XMPPPresence:出席(标示用户的在线状态)XMPPModule:开发XMPP扩展时使用XMPPLogging:XMPP的日志框架XMPPInternal:整个XMPP框架内部使用的核心和高级底层内容—高级软件人才实作培训专家!北京传智播客教育www.itcast.cn实例化XMPPStream设置代理设置hostName&JID连接连接成功发送用户密码,验证身份验证身份通过通知上线验证身份失败通知用户名错误或者密码错误!用户登录的流程图—高级软件人才实作培训专家!北京传智播客教育www.itcast.cnXMPP用户登录的实现步骤XMPPFrame框架是通过代理的方式实现消息传递的实现用户登录的步骤如下:1.实例化XMPPStream并设置代理,同时添加代理到工作队列2.使用JID连接至服务器,默认端口为5222,JID字符串中需要包含服务器的域名3.在完成连接的代理方法中验证用户密码,连接完成后XMPPStream的isConnect属性为YES4.在验证代理方法中判断用户是否登录成功5.上线或者下线成功后,向服务器发送Presence数据,以更新用户在服务器的状态—高级软件人才实作培训专家!北京传智播客教育www.itcast.cnAppDelegate.h为了简化开发,XMPP的引用程序通常会将XMPPStream放置在AppDelegate中,以便于全局访问在AppDelegate中添加以下属性和方...