这篇文章包括接下来的几篇文章主要是来介绍下用XMPP协议实现IOS中类似QQ微信那样的单聊,群聊功能。事先说明下,如果想要完全实现像QQ群那样的功能,服务器必须要升级。为什么这么说呢?因为xmpp是一个比较老的协议。离我们的业务需求还是有点距离的。就拿群聊来说,我们业务是实现和qq群一样的功能。而xmpp的群是聊天室的概念。这会出现什么问题呢?业务需要建一个群,群里每个人都能看到群成员信息(包括jid,昵称等),只要你加了群,其他人在群里发送的消息不管你在线离线下次登录的时候必须能收到。 而由于xmpp的群是个聊天室的概念。你进入房间才能收到消息,才算是这个聊天室的成员,离线后就自动离开房间了。所以对于别人包括群主来说,当他们查看群成员信息时,你在线就是群成员,不在线就不是了。而且你不在线时他们在群里聊天的信息你也看不到。因为你没有进入房间。
其他还有包括头像,昵称等各种问题,当然这些问题最后都解决了。一部分是通过服务端新开一些接口给客户端解决的(比如根据jid取用户头像等等)。还有一部分是通过客户端进行较复杂的逻辑处理解决的(比如把加入的房间存入书签,用来记录加了哪些群等等)。那时我第一次弄这个被搞得一个头两个大啊。。。顺便给大家推荐个网址,对学习XMPP协议很有帮助http://wiki.jabbercn.org/RFC6121#JID.E5.B1.9E.E6.80.A7。
网站里面各种情景的XML格式都写的非常清楚,下篇文章开始讲项目的配置和服务器的登录验证了。初学者最好先看看XMPP的基本概念比如Jid,IQ,花名册,出席协议,bpid等等。