一、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. Linux常用命令手册

    Linux常用命令手册 NO 分类 PS1 命令名 用法及参数 功能注解 对应章节 1 文件管理 # ls ls -a 列出当前目录下的所有文件,包括以.头的隐含文件     文件管理 # ls ls ...

  2. linux 添加静态路由

    Linux下静态路由修改命令方法一:添加路由route add -net 192.168.0.0/24 gw 192.168.0.1route add -host 192.168.1.1 dev 19 ...

  3. 解决`向github提交代码是老要输入用户名密码`

    在命令行输入命令:git config --global credential.helper store☞ 这一步会在用户目录下的.gitconfig文件最后添加: [credential] help ...

  4. 实现dedecms全站动态浏览 并实现伪静态

    dedecms默认是生成静态文件,如何实现织梦全站动态浏览呢? 织梦全站动态浏览方法 1. 修改首页为动态浏览 后台-生成-更新首页-勾选"仅动态浏览" 2. 修改栏目页为动态浏览 ...

  5. 利用while语句,条件为输入的字符不为'\n'.

    题目:输入一行字符,分别统计出其中英文字母.空格.数字和其它字符的个数. 1.程序分析:利用while语句,条件为输入的字符不为'\n'. 一个很简单的问题,其实换种方式就能完成,但是我就想怎么着才能 ...

  6. Java经典编程题50道之二十八

    对10个数进行排序. public class Example28 {    public static void main(String[] args) {        int[] s = { 5 ...

  7. js中的回调函数

    1.你定义的 2.你没有调用 3.但是最终他执行了 例子: 定时器回调函数 setTimeout(function(){ },100); dom元素的回调函数 document.getElementB ...

  8. Python——Web.py詳解

    ubuntu安裝Web.py sudo pip install web.py 測試代碼: import web urls = ( '/(.*)','hello' ) app = web.applica ...

  9. uva1025 动态规划

    这道题的边界是dp(T,N)=0,状态dp(i,j)表示在时间i.第j个车站最少等待时间,有三个决策:1.等1分钟 2.如果有向左的车,向左 3.若果有向右的车,向右  转移方程就是dp(i,j)=m ...

  10. sonar + jacoco + mockMvc 模拟session 用户登录 配合SpringSecurity 权限 快速测试代码覆盖率.

    遇到mock 测试简直就是神器,特别是要做代码覆盖率,直接测试controller就好了,缺点,虽然可以回滚事务,但是依赖数据库数据,解决,根据SpringBoot ,再建立一个专门跑单元测试的数据库 ...