iOS知识点总结——XMPP 知识点

XMPP的使用可以参考 上帝说:要约炮!于是有了XMPP by 作者 伯恩的遗产

  1. iOS8之后,应用需要注册应用,获得用户授权,才能接受本地通知。
    关键代码如下:
if ([[UIDevice currentDevice].systemVersion doubleValue] >= 8.0) {
        UIUserNotificationSettings *setting = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert|UIUserNotificationTypeBadge|UIUserNotificationTypeSound categories:nil];
        [[UIApplication sharedApplication] registerUserNotificationSettings:setting];
    }
  1. 在iOS7以及iOS7之前,socket是不支持后台运行(被挂起了),需要在plist做配置(属性:Required background modes),如下:
plist文件

还需要在代码里设置socket在后台运行的BOOL值为YES,参考如下:

    _xmppStream.enableBackgroundingOnSocket = YES;

此时真机上socket已经可以后台运行了,但是模拟器没法后台运行。

3.XMPP总结

  • 1.XMPP是一个即时通讯的传输协议,传输的数据格式是xml格式
  • 2.XMPP是通过Socket开发的,基于TCP/IP协议, 跟服务器交互的核心类是XMPPStream类。XMPPStream里面有个GCDAsynSocket对象,对C语言的CFReadStreamRef(输入流)、CFWriteStreamRef(输出流)进行了封装。
  • 3.XMPP是基于模块开发的,eg:
    自动连接模块XMPPReconnect 、
    电子名片模块XMPPvCardTempModule、
    头像模块XMPPvCardAvatarModule、
    花名册模块XMPPRoster、
    消息模块XMPPMessageArchiving,
    在使用以上模块有时候需要配合其对应的CoreData数据存储模块使用。

你可能感兴趣的:(iOS知识点总结——XMPP 知识点)