首页 > 代码库 > iOS,XMPP本地环境搭建和框架使用

iOS,XMPP本地环境搭建和框架使用

1.XMPP的MySQL和openfire环境配置

2.XmppFramework框架导入和介绍 

 

XMPP的MySQL和openfire环境配置

1.下载mysql安装
mysql下载

打开MySQL安装包如下

技术分享
 
  先后分别安装
 mysql-5.6.12-osx10.7-x86_64.pkg:MySQL的主要程序包;
 MySQL_StartupItem.pkg:MySQL的启动项;
 MySQL.prefPane:MySQL的偏好设置,主要用来启动MySQL服务。
2.修改MySQL密码
   *进入偏好设置中停止mysql服务
技术分享
 
技术分享
 *默认安装的MySQL的账户是root  密码为空
在终端通过下面命令登陆MySql,(初始密码为空直接点回车)
mysql -u root -p
 修改密码:
mysqladmin -u root password "123456"

 

3.安装MySQL图形化管理工具mysql-workbench
 mysql-workbench下载  安装
 *创建新数据库
技术分享
技术分享
 
 技术分享
技术分享
 
4.安装Java环境
  *openfire服务器是基于Java语言写的。
 JDK下载 安装
 安装好后再终端输入java -version就可以查看是否已经安装了Java环境
  

5.下载安装openfire

openfire下载 安装
 
*回到mysql_workbench来配置数据库
  打开Finder, command+shift+G
技术分享
 
技术分享
有个红色的标记说明没有权限访问,只需要右键显示简介,将锁打开,设置一下就行了
 
技术分享
 权限都改为读写
技术分享
  *mysql workbench中,双击"openfire",处于选中状态,然后点击菜单栏的"File",将刚才的脚本导入执行
技术分享
 
技术分享
点击??按钮
 
 安装好后重新打开系统偏好设置,找到openfire,点击打开跳转到浏览器,进行openfire设置
技术分享
选择简体中文
 下面本机可以用127.0.0.1,应该默认就可以
技术分享
 继续
技术分享
 继续
 
用户名和密码填mysql里设置的用户名和密码。注意图中支出的配置
技术分享
 设置完成后,会要求重新设置openfire的密码,然后就可以用用户名和密码登陆了
技术分享
 
安装上述完成
MySQL的用户名和密码是   root   123456
openfire的用户名和密码是 admin 123456

 

下载测试用客户端spark
spark下载
可以用openfire新建的用户名和密码登陆,也可以自己在客户端注册
技术分享
 
 
注:mac系统下openfire非常不稳定,只做练习使用
 

XmppFramework框架导入和介绍 

 1.网上下载XmppFramework框架导入


技术分享
 技术分享
  2.添加框架依赖
技术分享
 3.修改Build Settings
Header Search Paths    添加    /usr/include/libxml2
技术分享
       Library Search Paths  添加  $(PROJECT_DIR)/douniwanxia/Libs/XMPPFramework/Vendor/libidn
上述$(PROJECT_DIR)是整个项目路径;douniwanxia/Libs是我在该项目下放xmppframework的路径
 

 

框架内的大致介绍

Authentication    授权,身份验证

Categories        分类

Core              核心

Extensions        扩展

Utilities         工具

Vendor            第三方库

在Extensions中:

CoreDataStorage   coreData存储

Reconnect    重新连接

Roster    好友管理

    有数据表 XMPPRoster 用来管理用户

    管理用户的类 XMPPUserCoreDataStorageObject

SystemInputActivityMonitor     系统输入的活动监控

常用的模块:

XEP - 0009    RPC(类似黑客技术)

XEP - 0012    最后的活动(判断上线,离开断开)

XEP - 0045    多人聊天

XEP - 0054    名片-个人信息设置

XEP - 0065    sockets5字节流

XEP - 0066    二进制数据传输(特殊信息的发送)

XEP - 0085    聊天状态通知

XEP - 0136    聊天记录归档

  其中有数据表 XMPPMessageArchiving

  取出当前信息的类 XMPPMessageArchiving_Message_CoreDataObject 

XEP - 0153    基于名片的头像

XEP - 0199    xmpp ping (用来ping服务器和ping自己)

XEP - 0335    json容器(可能以后某些信息传输将用json格式)

 

在core中:

XMPPElement 是一个基类 ,延展出三个子类

XMPPIQ    请求 (用户登录,用户注册,添加好友等)

XMPPMessage    消息(用来发各种消息等)

XMPPPresence    展现(用户上线下线提示等)

      XMPPStream    流,非常常用,大部分类的加载都在写在流的懒加载里

在vender中:

kissXML 用于xml的主要解析框架 

 

XMPP中常用对象们

  • XMPPStream:xmpp基础服务类

  • XMPPRoster:好友列表类

  • XMPPRosterCoreDataStorage:好友列表(用户账号)在core data中的操作类

  • XMPPvCardCoreDataStorage:好友名片(昵称,签名,性别,年龄等信息)在core data中的操作类

  • XMPPvCardTemp:好友名片实体类,从数据库里取出来的都是它

  • xmppvCardAvatarModule:好友头像

  • XMPPReconnect:如果失去连接,自动重连

  • XMPPRoom:提供多用户聊天支持

  • XMPPPubSub:发布订阅

iOS,XMPP本地环境搭建和框架使用