一、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. mac攻略(1) -- 简单配置php开发环境

    [http://www.cnblogs.com/redirect/p/6112154.html]   最简单直接的方式还是使用 Mac 上自带的 Apache 和 PHP.   1.启动 Apache ...

  2. python学习:设计一个算法将缺失的数字找出来。

    算法题   已知整型数值 a[99], 包含的所有99个元素都是从1-100中随机取值,并且这99个数两两互不相等,也就是说从1到100这100个数字有99个在数值内,有一个缺失.请设计一个算法将缺失 ...

  3. MySQL数据库基础(MySQL5.7安装、配置)

      写在前面: MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQ ...

  4. c++ 如何获取多线程的返回值?

    // Console.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <stdlib.h> #include ...

  5. UVA - 10723 类似LCS

    思路:dp(i, j)表示第一个串前i个字符和第二个串前j个字符需要的最短字符串长度,cnt(i, j)表示第一个串前i个字符和第二个串前j个字符需要的最短字符串的个数. 转移方程: if(s1[i] ...

  6. POJ - 1733 Parity game 种类并查集+离散化

    思路:d(i, j)表示区间(i, j]的1的个数的奇偶性.输入最多共有5000*2个点,需要离散化处理一下.剩下的就是并查集判冲突. AC代码 #include <cstdio> #in ...

  7. Codeforces446C - DZY Loves Fibonacci Numbers

    Portal Description 给出一个\(n(n\leq3\times10^5)\)个数的序列,进行\(m(m\leq3\times10^5)\)次操作,操作有两种: 给区间\([L,R]\) ...

  8. Spring data mongodb 替换 Repository 实现类,findAll 排除 字段

    因文档比较大,有时候findAll 不想返回所有数据.没有找到默认的findAll 能够include 或者 exclude 的方法,所以想办法扩展一下实现类 query.fields().inclu ...

  9. 情景linux--shell如何实现多线程?

    情景linux--shell如何实现多线程? 情景 shell脚本的执行效率虽高,但当任务量巨大时仍然需要较长的时间,尤其是需要执行一大批的命令时.因为默认情况下,shell脚本中的命令是串行执行的. ...

  10. caffe之路-SIGTERM信号捕捉

    Caffe在1.0版本仅支持两种信号的处理: 1) SIGHUP 2) SIGINT SIGHUP:caffe接收到此信号后进行snapshot,并不会中断caffe的训练. SIGINT:caffe ...