一、XMPPFramework概述

XMPPFramework是一个OS X/iOS平台的开源项目,使用Objective-C实现了XMPP协议(RFC-3920),同时还提供了用于读写XML的工具,大大简化了基于XMPP的通信应用的开发。

XMPP的地址叫做JabberID(简写为JID),它用来标示XMPP网络中的各个XMPP实体。JID由三部分组成:domain,node identifier和resource。JID中domain是必不可少的部分。注意:domain和user部分是不分大小写的,但是resource区分大小写。

XMPP通信原语有3种:message、presence和iq。

1、message
message是一种基本推送消息方法,它不要求响应。主要用于IM、groupChat、alert和notification之类的应用中。
主要 属性如下:
1)、type属性,它主要有5种类型:
    • normal:类似于email,主要特点是不要求响应;
    • chat:类似于qq里的好友即时聊天,主要特点是实时通讯;
    • groupchat:类似于聊天室里的群聊;
    • headline:用于发送alert和notification;
    • error:如果发送message出错,发现错误的实体会用这个类别来通知发送者出错了;
2)、to属性:标识消息的接收方。
3)、from属性:指发送方的名字或标示。为防止地址外泄,这个地址通常由发送者的server填写,而不是发送者。
2、presence
presence用来表明用户的状态,如:online、away、dnd(请勿打扰)等。当改变自己的状态时,就会在stream的上下文中插入一个Presence元素,来表明自身的状态。要想接受presence消息,必须经过一个叫做presence subscription的授权过程。
3、iq(Info Query)
一种请求/响应机制,从一个实体从发送请求,另外一个实体接受请求,并进行响应。例如,client在stream的上下文中插入一个元素,向Server请求得到自己的好友列表,Server返回一个,里面是请求的结果。 
主要的属性是type。包括:

    • Get :获取当前域值。类似于http get方法。
    • Set :设置或替换get查询的值。类似于http put方法。
    • Result :说明成功的响应了先前的查询。类似于http状态码200。
    • Error: 查询和响应中出现的错误。
二、开发环境配置
主要用到的工具软件有Openfire,mysql,jdk,Navicat,spark等,这些在网上都可以下载到。
另附以上软件网盘下载地址:链接: http://pan.baidu.com/s/1kTniWOB 密码: qu6a ,有的程序比较老,比如javasdk,您可以上网自动更新。接下来就可以安装了:
第一步:安装jdk 
 一步一步点击就可以了。
第二步,安装mysql。
都安装好之后,会在偏好设置里面看到以下三个:
 
把MySQL和Openfire分别start。这边我遇到了一个问题,每次开机后,Openfire服务器是开启的,但MySQL默认没有打开(我选择了默认打开,但总是失败,我还没去找原因),这就导致了Openfire服务器账户密码登陆不了。这时,先关闭Openfire,再开启MySQL,最后开启Openfire。
第三步,为了数据库能看的清晰直观一些,可以安装MySQLWorkBench。
第四步,创建数据库。
名字随便填,其他默认。
随后点进新创建的连接
右键点击test,菜单中选择create schema,如图所示
 
这里要注意第二个选项,要选择中文的utf8编码,否则默认拉丁文~
点击Apply即可。
第五步:安装Openfire服务器,这是一个开源的、采用Java开发的、基于XMPP(Jabber)协议的服务器。也是一步一步点击就可以了 
点击偏好设置里的Openfire。
点击Open Admin Console,进入Openfire控制器进行初次配置。
域要填一个不重复的,这个要记住,这是以后的Domain
其他不变,点击继续,下一个界面,选择“标准数据库”。
 第一项选择MySQL数据库,其它的按照提示填空就可以了。 接下来设置登陆Openfire服务器管理员的账号和密码。
好了,Openfire服务器就配置好了。你可以手动添加几个用户,使用mac上自带的iMessage软件进行试验。
以上是正式开发前的准备工作,接下来会整理出用户上下线和注册,获取好友列表,单聊和聊天室等内容。下次见~
 
创了一个XMPP即时通讯交流群140147825,欢迎大家来交流~我们是一起写代码的弟兄~

iOS开发--XMPPFramework--环境的配置(一)的更多相关文章

  1. IOS开发基础环境搭建

    一.目的 本文的目的是windows下IOS开发基础环境搭建做了对应的介绍,大家可根据文档步骤进行mac环境部署: 二.安装虚拟机 下载虚拟机安装文件绿色版,点击如下文件安装 获取安装包:       ...

  2. 【1】windows下IOS开发基础环境搭建

    一.目的 本文的目的是windows下IOS开发基础环境搭建做了对应的介绍,大家可根据文档步骤进行mac环境部署: 二.安装虚拟机 下载虚拟机安装文件绿色版,点击如下文件安装 获取安装包:       ...

  3. golang在Windows下Sublime Text开发调试环境的配置

    一.前言 近期本人有工作调动,进入了一个全新的领域[golang]服务端开发.在此写下本文,希望给那些没接触过golang开发调试环境及还在犹豫选择那家golang IDE而纠结的朋友们一点点帮助,如 ...

  4. Ruby与Python开发的环境IDE配置(附软件的百度云链接)

    Ruby开发环境配置 1.Aptana_RadRails(提示功能不好,开发Ruby不推荐) 链接:http://pan.baidu.com/s/1i5q96K1 密码:yt04 2.Aptana S ...

  5. 基于Java的Arc Engine二次开发的环境的配置

    1.软件准备 ArcGIS for Desktop 10.2, Arc engine, jdk-7u60-windows-i586,Eclipse Mar2 2.软件的安装 2.1 ArcGIS fo ...

  6. webapp开发调试环境--weinre配置

    用谷歌调试工具中的手机模拟器模拟手机进行webapp的开发,与真机上的效果还是有些偏差,opera手机模拟器的效果亦不佳.有时在pc上开发出来的webapp效果良好,在部分真机上就出现了偏差,这时候就 ...

  7. iOS使用protobuf环境的配置

    配置protobuf需要HomeBrew工具或则是MacPort.如没有安装,则需要配置HomeBrew工具或则是MacPort. 步骤1(环境配置前的准备工作): 1:使用HomeBrew brew ...

  8. iOS开发中,info.plist配置用户隐私的保护

    info.plist 配置[用户隐私的保护]   >= iOS10 Privacy - Bluetooth Peripheral Usage Description --> App需要您的 ...

  9. 2015 - 4- 21 iOS开发越狱环境的搭建1

    2015 - 4- 20   1. 越狱环境的搭建   http://www.iduuke.com/2030.html http://www.cnblogs.com/xiongwj0910/archi ...

随机推荐

  1. echarts legend 重叠 (转载)

    解决方案:  1. 调整option中的grid.top值才能避免重叠:(可以设置定制,也可以定义了一个计算公式) 2. 文档注明[特殊字符串 ''(空字符串)或者 '\n' (换行字符串)用于图例的 ...

  2. php进阶之路--转载

    之前有看过相关的文章,觉得还是这篇详细点,有具体的目标实现起来才更有动力 转载自:http://wen.52fhy.com/2016/2016-09-03-PHP-cheng-xu-yuan-xue- ...

  3. 利用mock提高效率

    利用mock提高效率 谈到mock,就不得不讲前后端分离.理想情况下前后端不分离,由全栈的人以product和infrastructure的维度进行开发,效率是最高的.近些年来业务的复杂度越来越高,真 ...

  4. maven The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path错误

    对于这个问题的话,请在pom文件中加入 <dependency> <groupId>javax.servlet</groupId> <artifactId&g ...

  5. 使用maven搭建hibernate的pom文件配置

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...

  6. LeetCode第五天

    leetcode 第五天 2018年1月6日 22.(566) Reshape the Matrix JAVA class Solution { public int[][] matrixReshap ...

  7. 概括一下nodejs

    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境. Node.js是事件驱动,非阻塞I/O的.所以它再处理高并发,I/O密集的场景下性能优势明显,如web. 对比 ...

  8. AGC010 - D: Decrementing

    原题链接 题意简述 给出一个个数的序列,足够聪明的AB两人轮流进行以下操作: 令一个大于1的数减1,然后所有数除以. 如果一个人不能操作了,那么他就输了. 输入保证所有数都是正整数并且. 分析 这是一 ...

  9. 微信企业号JS-SDK选择图片、上传图片

    因公司项目需要,要修改一个手机端上传图片的一个功能,原本的项目用的是input 的file控件上传的,虽然标注了可以多选,但是在实际运用当中只有iOS手机可以实现多选,Android手机并不支持多选, ...

  10. TCP协议的三次握手和四次分手

    HTTP连接 HTTP协议即超文本传送协议(Hypertext Transfer Protocol ),是Web联网的基础,也是手机联网常用的协议之一,HTTP协议是建立在TCP协议之上的一种应用. ...