码迷,mamicode.com
首页 > 移动开发 > 详细

iOS_32_XMPP环境搭建

时间:2014-09-09 18:24:09      阅读:491      评论:0      收藏:0      [点我收藏+]

标签:openfire   jdk   mysql   xmpp   即时通讯   

bubuko.com,布布扣
?即时通讯技术(IM)支持用户在线实时交谈。

?IM系统最大的区别在于各自通讯协议的实现
所以即时通讯技术的核心在于它的传输协议

?协议用来说明信息在网络上如何传输,
目前已经出现过的IM协议包括:
IETF的对话初始协议(SIP)和即时通讯对话初始协议和表示扩展协议(SIMPLE)、
应用交换协议(APEX)、
显示和即时通讯协议(PRIM)
基于XML且开放的可扩展通讯和表示协议(XMPP
XMPP又常称为 Jabber协议


?XMPP是基于XML的协议。

?XMPP前身是Jabber1998年)
是一个开源组织定义的网络即时通信协议
?XMPP是一个分散型通信网络,任何XMPP用户都可以向其他任何XMPP用户传递消息。
多个XMPP服务器也可通过一个专门的“服务器-服务器”协议相互通信,


?XMPP是一种基于XML的协议是可扩展的
可以通过发送扩展的信息来处理用户的需求,
以及在XMPP的顶端建立如内容发布系统和基于地址的服务等应用程序。
而且,XMPP包含了针对服务器端的软件协议
使之能与另一个进行通话,
这使得开发者更容易建立客户应用程序或给一个配置好的系统添加功能
?XMPP的核心XML流传输协议的定义使得XMPP能够在一个比以往网络通信协议更规范的平台上。
?XMPP的即时通讯扩展应用部分是根据IETF在这之前对即时通讯的一个抽象定义的

?XMPP的扩展协议Jingle使得其支持语音和视频
?XMPP的官方文档时RFC 3920



?XMPP:The Extensible  Messaging and Presence Protocol(可扩展通讯和表示协议)
?XMPP可用于服务类实时通讯、表示和需求响应服务中的XML数据元流式传输
XMPP以Jabber协议为基础,而Jabber是即时通讯中常用的开放式协议
?XMPP是基于XML的协议,用于即时消息(IM instant message)以及在线现场探测
促进服务器之间的准即时操作。





?XMPP是一个典型的C/S架构,
大多数情况下,当两个客户端进行通讯时,
他们的消息都是通过服务器传递的。
采用这种架构,主要是为了简化客户端,
将大多数工作放在服务器端进行

?XMPP中定义了三个角色,
客户端,服务器,网关
通信能够在这三者的任意两个之间双向发生

?服务同时承担了客户端信息记录,
连接管理和信息的路由功能

?网关承担着与异构即时通信系统的互联互通,
异构系统可以包括SMS(短信),MSN,ICQ等

?基本的网络形式是单客户端通过TCP/IP连接到单服务器
然后在此连接之上传输XML


通讯步骤:
1.节点连接到服务器
2.服务器利用本地目录系统中的证书对其认证
3.节点指定另一个目标节点地址,让服务器告知其状态
4.服务器查找、连接并进行相互认证
5.节点之间进行交互



?XMPP应用传输的是与即时通讯相关的指令

?XMPP的协议形式变成了XML格式的纯文本

?XMPP的核心部分就是一个在网络上分片段发送XML的流协议
这个流协议是XMPP的即时通讯指令的传递基础
也是一个非常重要的可以被进一步利用的网络基础协议
?XMPPTCP传的是XML
?缺点:数据量大,没有二进制传输
?XMPP是一种类似于HTTP协议的一种数据传输协议,
其过程就如同“解包装--〉包装”的过程。
只需要理解其接收的类型及返回的类型,
便可以很好的利用XMPP来进行数据通讯

?XMPP官方网站——xmpp.org




?可用服务器地址:xmpp.org/xmpp-software/servers/
Name Platform(s) License Details Latest Release
Apache Vysper Windows / Linux Apache License Version 2.0 mina.apache.org 2011-02-23
Citadel Linux GPL3 citadel.org 2013-08-14
CommuniGate Pro Linux / Mac OS X / Windows Commercial communigate.com 2013-09-10
Coversant SoapBox Server Windows Commercial coversant.com unknown
djabberd Linux GPL3 danga.com 2011-06-13
ejabberd Linux / Mac OS X / Solaris / Windows GPL2 process-one.net 2013-06-28
IceWarp Linux / Windows Commercial icewarp.com 2012-12-11
iChat Server Mac OS X Commercial apple.com 2012-07-25
in.jabberd Linux GPL2 inetdxtra.sourceforge.net 2013-05-16
Isode M-Link Linux / Solaris / Windows Commercial isode.com 2013-06-24
jabberd 1.x Linux GPL2 jabberd.org 2012-06-28
jabberd 2.x Linux / Solaris / Windows GPL2 jabberd2.org 2012-08-26
Jabber XCP Linux / Solaris / Windows Commercial cisco.com 2008-10-31
Jerry Messenger Linux / Windows Commercial j-livesupport.com unknown
Kwickserver Windows GPL kwickserver.info 2010-10-15
Metronome IM Linux / Mac OS X ISC/MIT lightwitch.org/metronome 2013-10-02
MongooseIM Linux / Mac OS X GPL2 erlang-solutions.com 2013-05-23
Openfire Linux / Mac OS X / Solaris / Windows Apache igniterealtime.org 2013-05-28
Oracle Communications Instant Messaging Server Linux / Solaris / Windows Commercial oracle.com 2013-05-07
Prosody IM Linux / Mac OS X / Windows MIT/X11 prosody.im 2013-09-10
psyced Linux / Mac OS X / Windows GPL2 psyced.org 2011-11-22
Siemens OpenScape Linux Commercial siemens-enterprise.com 2011-12-15
Tigase Linux / Solaris / Mac OS X / Windows AGPL tigase.org 2013-04-24
Vines Linux / Mac OS X MIT getvines.com 2013-06-22
Wokkel Linux / Solaris / Mac OS X MIT wokkel.ik.nu 2013-01-12


?Openfire简介
–采用Java开发,
开源的实时协作(RTC)服务器,
基于XMPP(Jabber)协议
–可以轻易的构建高效率的即时通信服务器
–安装和使用简单,并利用Web进行管理
单台服务器可支持上万并发用户
bubuko.com,布布扣

下载完成后,如图
bubuko.com,布布扣

一、下载完成后,打开安装包,双击Pkg文件,开始安装

?下载并安装:http://www.igniterealtime.org/projects/openfire/index.jsp

?安装位置:/usr/local/openfire/

?安装位置该文件夹的用户访问权限 需要手动修改

?数据库脚本保存在/usr/local/openfire/resources/database文件夹下

?将openfire_mysql.sql第59行的字段类型修改为VARCHAR(255)

安装成功

bubuko.com,布布扣

目录禁止访问,需要手动添加当前用户帐号

bubuko.com,布布扣



二、安装完成后,打开系统偏好

bubuko.com,布布扣

如果终始无法开启open fire,说明其依赖的JDK环境没有安装

bubuko.com,布布扣

三、进入/usr/local文件夹,修改openfire目录权限 (右键,显示简介)
bubuko.com,布布扣

bubuko.com,布布扣

添加当前帐号用户,并为其赋予读写权限
bubuko.com,布布扣

修改为读写权限 ,并再次上锁

bubuko.com,布布扣
此时,可以访问openfire文件夹了
bubuko.com,布布扣

四、若想成功启动Openfire,还需要安装JDK环境(200M左右)
JDK7下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
JDK8下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

查看机器上是否安装了JDK,bash终端中输入:         java -version  回车
查看机器上的版本:ls -la /System/Library/Frameworks/JavaVM.framework/Versions/
JDK的安装目录为:/Library/Java/JavaVirtualMachines,里面有所有安装的JDK
bubuko.com,布布扣


查看系统是32还是64位的方法:
打开终端,在应用程序的工具下,输入代码:
ioreg -l -p IODeviceTree | grep "firmware-abi" | sed -e ‘s/[^0-9A-Z]//g‘    
回车  EFI64或者EFI32代表你的机器支持64或者32位的
bubuko.com,布布扣


判断系统里是否已经安装 gcc编译器的方法是:
打开一个终端,输入命令 g++
没有则输出command not found
若安装了则输出 not input files 
bubuko.com,布布扣

Mac版本 Eclipse下载(仅标记非必需
http://dl.google.com/android/studio/install/0.8.0/android-studio-bundle-135.1245622-mac.dmg
bubuko.com,布布扣


bubuko.com,布布扣
bubuko.com,布布扣

bubuko.com,布布扣

bubuko.com,布布扣

bubuko.com,布布扣

bubuko.com,布布扣

安装好JDK之后,就可正常打开openfire了
bubuko.com,布布扣

二、点击上图的【open admin console】配置openfire服务器

1.设置语言,选中文,端口默认【9090】

bubuko.com,布布扣

bubuko.com,布布扣

2.主机设置

设置主机的访问ip地址

域名:主机名.local    比如:beyonddemacbook-pro.local

bubuko.com,布布扣

注意:域不能是机器名,否则会如下错误:

HTTP ERROR: 500 INTERNAL_SERVER_ERROR

本地的域,要设置为127.0.0.1

3.数据库设置

设置外部数据库(推荐,比如:MySQL),选择标准数据库连接,需提前安装,请参照上一篇

bubuko.com,布布扣

4.设置数据库连接 【前提是在数据库中新建好一个库】

?create  database   openfire;
?#修改数据库字符集
?alert  database openfire  default character set = utf8;
?#切换数据库
?use openfire
?#执行数据库脚本创建数据表
source /usr/local/openfire/resources/database/openfire_mysql.sql

bubuko.com,布布扣

进入openfire安装目录  /usr/local/openfire/resources/database/ 【如果提示没有权限,被拒绝,参照上面的做法】

bubuko.com,布布扣

再次进入mysql,

?使用openfire database
执行:source /usr/local/openfire/resources/database/openfire_mysql.sql

bubuko.com,布布扣


bubuko.com,布布扣

bubuko.com,布布扣

至此,前面数据库就配置好,可以继续配置openfire了

bubuko.com,布布扣

附其他库的URL固定写法及端口号

bubuko.com,布布扣

bubuko.com,布布扣

bubuko.com,布布扣

bubuko.com,布布扣

(1)数据库驱动选择:MySQL,前提是已安装MySQL(具体的安装方法可以参考上一篇:mac上安装MySQL

(2)JDBC驱动,默认不变

com.mysql.jdbc.Driver

(3)数据库URL:

形式如下:

jdbc:mysql://你的主机名:端口号/数据库名称

这里设置为

jdbc:mysql://localhost:3306/openfire
jdbc:mysql://localhost:3306/openfire?rewriteBatchedStatements=true

其中主机名[host-name]改为localhost

其中数据库名称[database-name]改为openfire (自己在mysql手动建立的库)

解决数据库字符编码问题,可以在后面加

?useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8

最终的url形式是

jdbc:mysql://localhost:3306/openfire?useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8

注意:前提是已存在一个名为openfire的数据库,否则会报如下错误,连接配置不成功

The Openfire database schema does not appear to be installed. Follow the installation guide to fix this error. 

前期的MySQL数据库准备工作如下:

<1>设置/usr/local/openfire文件夹的访问权限为可读写

方法1:在finder中前往文件夹/usr/local/,右键openfire文件夹,显示简介

点击如图右下角中的锁图标解锁,并设置权限为:可以读写

bubuko.com,布布扣

方法2:打开终端,输入如下命令

sudo chmod 777 /usr/local/openfire

其中777表示授权可读写权限,000表示无访问权限,(具体的含义可以参考上一篇:mac的终端命令

<2>在终端中,登陆MySQL

mysql -u root -p

然后输入数据库的root密码

<3>创建数据库openfire

create database openfire;
use openfire;
alertdatabase openfire default character set = utf8;

<4>导入openfire资源文件夹 resources/database下的数据表

use openfire;
source /usr/local/openfire/resources/database/openfire_mysql.sql

 在终端出现一排导入过程

bubuko.com,布布扣

 <5>刷新权限

flush privileges;

<6>退出MySQL

exit

(4)用户名和密码

这里的用户名密码,是访问MySQL数据库时使用的帐号:root,和安装MySQL设置的root密码

5.继续设置openfire的特性

如果不打算使用LDAP,则保持默认设置

bubuko.com,布布扣

 6.设置openfire服务器管理员的帐号和密码

管理员:admin@beyond.com

密码:123456

123456


可以随便填写一个管理员邮箱,输入要设置的密码

完成注册

bubuko.com,布布扣

 

7.登陆管理控制台

 bubuko.com,布布扣

默认的管理员帐号是“admin”,默认管理员密码“admin”,如果上面最后一步设置了新密码,则管理员密码是新密码123456

 bubuko.com,布布扣

bubuko.com,布布扣

 

如果想去掉默认的admin帐号,并自定义,需要如下操作

 

(1)在终端中,登陆具体的数据库(openfire)

 

mysql -u root -p openfire

 

然后输入数据库的root密码

 

(2)删除表“ofUser”中的admin帐户

 

delete from ofUser where username=admin;

 

(3)创建自定义管理员(用户名:admin,密码:123456)

 

INSERT INTO ofUser (username, plainPassword, encryptedPassword, name, email, creationDate, modificationDate) VALUES (admin,123456‘,e10adc3949ba59abbe56e057f20f883e,Administrator,admin@beyond.com,‘001410251606152‘,0);

  注意:如果重设了用户名,必须重启openfire服务器 

三、卸载openfire

1.停止服务

在系统偏好设置的其他里,打开openfire偏好设置

bubuko.com,布布扣

点击Stop Openfire按钮,停止服务

bubuko.com,布布扣

2.删除文件

打开终端,输入以下命令

sudo rm -rf /Library/PreferencePanes/Openfire.prefPane
sudo rm -rf /usr/local/openfire
sudo rm -rf /Library/LaunchDaemons/org.jivesoftware.openfire.plist

其中第一条命令之后,需要输入本机管理员密码

3.如果想要重新安装openfire

打开终端,输入以下命令,打开openfire.xml,找到setup节点后 将值改为false,并drop掉openfire database

bubuko.com,布布扣


bubuko.com,布布扣















iOS_32_XMPP环境搭建

标签:openfire   jdk   mysql   xmpp   即时通讯   

原文地址:http://blog.csdn.net/pre_eminent/article/details/39154831

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!