XMPP即时聊天框架:XMPPFramework
XMPP
The Extensible Messaging and Presence Protocol(可扩展通讯和表示协议)。
基于XML
XMPP是一个典型的C/S架构,而不是像大多数即时通讯软件一样,使用P2P客户端到客户端的架构
服务器:OpenFire
测试客户端:spark
iOS开发框架:XMPPFramework
XMPP的地址叫做JabberID(简写为JID),它用来标示XMPP网络中的各个XMPP实体。
JID由三部分组成:domain,node identifier和resource。JID中domain是必不可少的部分。注意:domain和user部分是不分大小写的,但是 resource区分大小写。
jid = [ node "@" ] domain [ "/" resource ]
domain:通常指网络中的网关或者服务器。
node identifier:通常表示一个向服务器或网关请求和使用网络服务的实体(比如一个客户端),当然它也能够表示其他的实体(比如在多用户聊天系统中的一个房间)。
resource:通常表示一个特定的会话(与某个设备),连接(与某个地址),或者一个附属于某个节点ID实体相关实体的对象(比如多用户聊天室中的一个参加者)。
JID种类有:
bare JID:user@domain.tld
full JID:user@domain.tld/resource
XMPP通信原语有3种:message、presence和iq。
message是一种基本推送消息方法,它不要求响应。主要用于IM、groupChat、alert和notification之类的应用中
presence用来表明用户的状态
(Info / Query) 一种请求/响应机制,从一个实体从发送请求,另外一个实体接受请求,并进行响应
共同属性:
to属性:标识消息的接收方。
from属性:指发送方的名字或标示
type属性
实现功能:
登录、注册
个人状态通知
联系人列表(花名册)
添加、删除好友
收发消息
消息存储
修改个人资料