天天看点

iOS开发之使用XMPPFramework实现即时通信(一)

  关于xmpp的理论介绍在本篇博客中就不做赘述了,如何在我们之前的微信中加入xmpp协议来实现通信呢?下面将会介绍一下xmpp的基本的知识,让我们的微信可以实现互联通信。要做的准备工作是要有服务器支持xmpp协议,然后通过spark注册个测试账号,最后就可以通过xmpp用我们已有的账号和密码进行通信啦。至于如何使服务器支持xmpp协议,如何通过spark注册账号,不是本篇博客的论述主题,本篇博客中主要是如何在我们的app中使用xmpp协议。

  今天的博客中的内容是如何在工程中引入xmppframework,并在app上可以连接并认证我们的账户和密码,好啦,废话少说,切入今天的正题。

  一.xmppframework的引入

    1.使用xmpp当然少不了框架的导入,还是用cocoapods来管理第三方类库,在对应的工程中用cocoapods引入xmppframework, 在profile中添加相应版本的xmppframework框架,然后pod update一下安装即可,终端截图如下:

iOS开发之使用XMPPFramework实现即时通信(一)

    2.update成功以后我们就可以用xmppframework干活了

  二.使用xmppframework连接服务器并认证密码

    1.在appdelegate中声明并实例化xmppstream,在获取xmppstream实例时,和coredata中的managedobjectcontext类似,下面会给出代码,

      初始化xmppsteam代码如下:

    2.在使用xmppframework时,因为其用到是委托回调,所以要在相应的controller中实现xmppstreamdelegate协议,然后实现协议中相应的方法。

      (1).在使用xmppstream的controller中通过application的delegate获取我们上面创建的xmppstream实例,代码如下:

     (2)获取xmpp流以后,就可以连接服务器了,连接服务器分为三部分,先拼接xmppjid, 然后把jid添加到xmppstream中,最后连接。代码如下:

    (3)实现连接服务器后要回调的方法(连接后要认证用户密码),代码如下

    (4)实现认证成功后要回调的方法,代码如下:

    (5)认证失败后要调用的方法,代码如下: