iOS_32_XMPP环境搭建

?即时通讯技术(IM)支持用户在线实时交谈。

?IM系统最大的区别在于各自通讯协议的实现,

所以即时通讯技术的核心在于它的传输协议

?协议用来说明信息在网络上如何传输,

目前已经出现过的IM协议包括:

IETF的对话初始协议(SIP)和即时通讯对话初始协议和表示扩展协议(SIMPLE)、

应用交换协议(APEX)、

显示和即时通讯协议(PRIM)

基于XML且开放的可扩展通讯和表示协议(XMPP)

XMPP又常称为 Jabber协议


?XMPP是基于XML的协议。

?XMPP前身是Jabber(1998年),

是一个开源组织定义的网络即时通信协议

?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的即时通讯指令的传递基础,

也是一个非常重要的可以被进一步利用的网络基础协议。

?XMPP用TCP传的是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进行管理

–单台服务器可支持上万并发用户

下载完成后,如图

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

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

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

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

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

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

安装成功

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

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

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

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

添加当前帐号用户,并为其赋予读写权限

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

此时,可以访问openfire文件夹了

四、若想成功启动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

查看系统是32还是64位的方法:

打开终端,在应用程序的工具下,输入代码:

ioreg
-l -p IODeviceTree | grep "firmware-abi" | sed -e ‘s/[^0-9A-Z]//g‘

回车 
EFI64或者EFI32代表你的机器支持64或者32位的

判断系统里是否已经安装 gcc编译器的方法是:

打开一个终端,输入命令 g++,

没有则输出command
not found,

若安装了则输出 not
input files。

Mac版本 Eclipse下载(仅标记非必需

http://www.eclipse.org/downloads/?osType=macosx&release=undefined

http://dl.google.com/android/studio/install/0.8.0/android-studio-bundle-135.1245622-mac.dmg

安装好JDK之后,就可正常打开openfire了

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

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

2.主机设置

设置主机的访问ip地址

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

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

HTTP ERROR: 500 INTERNAL_SERVER_ERROR

本地的域,要设置为127.0.0.1

3.数据库设置

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

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

?create  database   openfire;

?#修改数据库字符集

?alert  database openfire  default character set = utf8;

?#切换数据库

?use openfire

?#执行数据库脚本创建数据表

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

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

再次进入mysql,

?使用openfire database

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

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

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

(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文件夹,显示简介

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

方法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

在终端出现一排导入过程

<5>刷新权限

flush privileges;

<6>退出MySQL

exit

(4)用户名和密码

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

5.继续设置openfire的特性

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

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

管理员:[email protected]

密码:123456

123456

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

完成注册

7.登陆管理控制台

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

如果想去掉默认的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‘,‘[email protected]‘,‘001410251606152‘,‘0‘);

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

三、卸载openfire

1.停止服务

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

点击Stop Openfire按钮,停止服务

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

时间: 2024-10-21 14:50:14

iOS_32_XMPP环境搭建的相关文章

一、环境搭建

1 更新到最新版本的pip(这是安装python扩展包的一个插件)命令如下: python -m pip install --upgrade pip 2 使用pip安装virtualenv,命令 pip install virtualenv  如果要指定版本号,pip install virtualenv==15.0.1(安装虚拟环境) 3 创建django虚拟环境,命令 virtualenv django_basic_venv 4 使用虚拟环境 需要进入到安装目录的Scripts文件夹下,运行

Ionic2环境搭建及文件目录介绍

[注]引用自:http://blog.csdn.net/jasonzds/article/details/53821184 1环境搭建 一年前研究混合框架,初步确定了四种方案给公司选择,ionic,hbuilder,wex5,react-native这四个框架各有优缺点,ionic和react-native是国外框架,相对好一点,文档更新很快,就不一一说了,大概的思路都是一样的,js逻辑实现,同时调用原生功能,h5,css3 UI实现,其实他们都有自己的ui框架,当时选择了国内的hbuiler,

Selenium+Java+Eclipse 自动化测试环境搭建

一.下载Java windows java下载链接 https://www.java.com/zh_CN/download/win10.jsp 二.安装Java 安装好后检查一下需不需要配置环境变量,现在java 8已经不用配置环境变量了,直接在命令行输入:java -version 三.下载和安装Eclipse windows Eclipse下载链接 https://www.eclipse.org/downloads/ 你也可以下载绿色版 四.下载selenium,然后解压 selenium

Qt在Mac OS X下的编程环境搭建(配置Qt库和编译器,有图,很清楚)

尊重作者,支持原创,如需转载,请附上原地址:http://blog.csdn.net/libaineu2004/article/details/46234079 在Mac OS X下使用Qt开发,需要配置Qt库和编译器.编译器只能使用苹果公司自主研发的Clang.1.分别下载并安装XCode和Command Line Tools(必须安装),安装完毕后,Clang就有了. https://developer.apple.com/downloads/ 2.下载Qt并默认安装 http://down

基于 Eclipse 的 MapReduce 开发环境搭建

文 / vincentzh 原文连接:http://www.cnblogs.com/vincentzh/p/6055850.html 上周末本来要写这篇的,结果没想到上周末自己环境都没有搭起来,运行起来有问题的呢,拖到周一才将问题解决掉.刚好这周也将之前看的内容复习了下,边复习边码代码理解,印象倒是很深刻,对看过的东西理解也更深入了. 目录 1.概述 2.环境准备 3.插件配置 4.配置文件系统连接 5.测试连接 6.代码编写与执行 7.问题梳理 7.1 console 无日志输出问题 7.2

ICE分布式文件管理系统——ICE环境搭建(其二)

上一博文,我们讲述了ICE这个中间件的基本认识. 接下来我们讲述开发环境搭建. 其过程主要分为三步: 安装GCC-4.4.6.安装ICE-3.4.2.安装QT-4.7.3. (本文是基于LINUX下的ICE-3.4.2的安装,如果已安装了GCC(版本高于GCC-4.4.6亦可),请直接安装ICE) 一.安装GCC: (gcc各版本浏览地址:http://ftp.gnu.org/gnu/gcc/) 一般来说基于linux的操作系统都是默认安装了GCC的.假如说你的电脑没有的话 请百度一哈,可以解决

[Step-By-Step Angular2](1)Hello World与自动化环境搭建

随着rc(release candidate,候选版本)版本的推出,万众瞩目的angular2终于离正式发布不远啦!五月初举办的ng-conf大会已经过去了整整一个月,大多数api都如愿保持在了相对稳定的状态——当然也有router这样的例外,在rc阶段还在大面积返工,让人颇为不解——不过总得说来,现在学习angular2不失为一个恰当的时机. Google为angular2准备了完善的文档和教程,按理说,官网(https://angular.io)自然是学习新框架的最好教材.略显遗憾的是,在B

Linux交叉开发环境搭建 —— 效率之源

楼主今天终于把所有Linux开发环境需要的软件下载完毕了.虽然以前也是搭建过的,时间久了又折腾了一晚上. 交叉环境: Windows.Linux文件共享 SecureCRT 连接虚拟机终端 工具: VirtualBox ubuntu-16.04-desktop-amd64.iso(ubuntu官网下载) SecureCRT Source Insight 虚拟机搭建: 检查bios虚拟技术功能开启 新建虚拟机,选择创建虚拟硬盘,其余均默认 点击新建虚拟机设置->存储->选中没有光盘->点击

Intellij IDEA 14.1.4 Scala开发环境搭建

主要内容 Intellij IDEA开发环境简介 Intellij IDEA Scala开发环境搭建 Intellij IDEA常见问题及解决方案 Intellij IDEA常用快捷键 1. Intellij IDEA开发环境简介 具体介绍请参见:http://baike.baidu.com/link?url=SBY93H3SPkmcmIOmZ8H60O1k4iVLgOmdqoKdGp9xHtU-Pbdsq2cpn75ZPZPWAJxeUlwr0ravraQzOckh777beq Intelli