1. 即时通讯技术简介(IM)

即时通讯技术(IM-Instant Messageing)支持用户在线实时交谈。如果要发送一条信息,用户需要打开一个小窗口,以便让用户及其朋友在其中输入信息并让交谈双方都看到交谈的内容。

有许多IM的系统,入AOL、MSN、QQ等,他们最大的区别在于各自通讯协议的实现,所以即时通讯技术的核心在于它的传输协议。

协议用来说明信息在网络上如何传输,如果有了统一的传输协议,那么应当可以实现各个IM之间的直接通讯,为了创建即时通讯的统一标准,目前已经出现过的IM协议包括:IETF的对话初识协议(SIP)、即时通讯协议(PRIM)、基于XML且开放的可扩展通讯和表示协议(XMPP,也称为Jabber协议)。

人们多次努力,试图统一各大主要IM供应商的标准(AOL、Yahoo及Microsoft),但是没一个成功,且每一种IM仍然继续使用自己所拥有的协议。

2. XMPP简介

XMPP是基于XML的协议,用于即时消息(IM)以及在线现场探测。最初,XMPP作为一个框架开发,目标是支持企业环境内的即时消息传递和联机状态应用程序。

XMPP前身是Jabber(1998年)一个开源组织定义的网络即时通讯协议。

XMPP是一个分散型通信网络,这意味着,只要网络基础设施允许,任何XMPP用户都可以向其它任何XMPP用户传递消息。多个XMPP服务器也可以通过一个专门的‘服务器-服务器’协议相互通信,提供了创建分散型社交网络和协作框架的可能性。

尽管XMPP的出现时为了满足‘个人-个人’即时消息传递的要求,但它完全不必局限于此任务。

3. XMPP概述

XMPP是一种基于XML的协议,它继承了在XML环境中灵活的发展性。这表明XMPP是可扩展的。可以通过发送扩展的信息来处理用户的需求,以及在XMPP的顶端建立如内容发布系统和基于地址的服务等应用程序。而且,XMPP包含了针对服务器端的软件协议,使之能与另外一个进行通话,这使得开发者更容易建立客户应用程序或给一个配置好的系统添加功能。

XMPP的核心XML流传输协议的定义使得XMPP能够在一个比以往网络通信协议更规范的平台上。借助于XML易于解析和阅读的特性,使得XMPP的协议能够非常漂亮。

XMPP的即时通讯扩展应用部分是根据IETF在这之前对即时通讯的一个抽象定义的,与其他已得到广泛使用的即时通讯协议,诸如AIM、QQ等有功能完整、完善等先进性。

XMPP的扩展协议Jingle使得其支持语音和视频,目前IOS尚不支持

XMPP的官方文档是RFC 3920

XMPP协议曾经是Google力推的通信协议,其代表作品是GTalk

4. 安装服务器

安装服务器之前,首先要配置以下信息:

  ①安装数据库mysql(这里安装的是5.6.30)

最好到官网下载: http://dev.mysql.com/downloads/mysql/5.6.html#downloads

win系统的安装可以参照: MySQL服务器安装配置-非安装版、windows版

安装好mysql后,我们这里建立一个数据库名为 openfire

  ②安装jdk

  ③安装openfire

官方下载地址:http://www.igniterealtime.org/downloads/index.jsp#openfire

1)下载完之后,我们打开openfire,看到下面界面:

2)点击‘Launch Admin’来打开网页。我们在下面网页中一步一步地做配置。如下:

3)点击continue,下面的都可以随便下,如下:(请记住域这个配置,这里设置GZ0111)

4)点击继续,如下:

5)配置数据库,注意地址是本机=127.0.0.1,database=openfire。因为我们上面已经新建这个数据库。

6)继续,如下:

7)设置管理员,这里填写admin@example.com/111111,如下:

8)完成之后,我们登录:(用户名不是邮箱地址,这里是admin)

9)登录之后,我们在用户组里面添加用户

5. 安装客户端

1)安装spark

到网站上面下载Spark: http://www.igniterealtime.org/downloads/index.jsp

我们运行Spark,用户密码为test1/111111、服务器为本机。

成功后,我们可以看到下面界面

2)陆续更新

如果想了解更多socket知识,请查看上一篇文章

IOS Socket 04-利用框架CocoaAsyncSocket实现客户端/服务器端

IOS Socket 05-XMPP开始&安装服务器openfire&安装配置客户端的更多相关文章

  1. XMPP(二)-基于asmack+openfire的安卓客户端(仿QQ)的介绍以及个人心得

    关于XMPP第一篇-openfire的搭建写完后,就一直在赶本篇所要介绍的这个基于asmack+openfire的安卓客户端,费了不少精力,因为有不少同学在还在焦急的等待着(自恋了呵呵),所以紧赶慢赶 ...

  2. XMPP环境搭建 (mac环境下 安装自己独立的mysql与服务器(openfire),实现即时聊天功能)

    1简单概览 [一]XMPP简介 http://xmpp.org 即时通讯技术 IM - Instant Messaging ⽀支持⽤用户在线实时交谈.交谈双⽅方都需要⼀一个聊天窗⼝口,其中⼀一个⽤用户 ...

  3. xmpp openfire smack 介绍和openfire安装及使用

    前言 Java领域的即时通信的解决方案可以考虑openfire+spark+smack.当然也有其他的选择. Openfire是基于Jabber协议(XMPP)实现的即时通信服务器端版本,目前建议使用 ...

  4. 基于XMPP实现的Openfire的配置安装+Android客户端的实现

    最近在整理一些这方面的资料,闲话少说,咱还是直奔主题吧 :) 一.基于xmpp实现的openfire的配置安装 1. 下载最新的openfire安装文件 官方下载站点: http://www.igni ...

  5. 基于XMPP实现的Openfire的配置安装+Android客户端的实现[转]

    最近在整理一些这方面的资料,闲话少说,咱还是直奔主题吧 :) http://blog.csdn.net/sk719887916/article/details/40541163 https://git ...

  6. Strophe.js连接XMPP服务器Openfire、Tigase实现Web私聊、群聊(MUC)

    XMPP(Extensible Messaging and Presence Protocol)是一种网络即时通讯协议,它基于XML,具有很强的扩展性,被广泛使用在即时通讯软件.网络游戏聊天.Web聊 ...

  7. ubuntu下的openfire安装、配置、运行

    openfire服务器              Openfire 采用Java开发,开源的实时协作(RTC)服务器基于XMPP(Jabber)协议.您可以使用它轻易的构建高效率的即时通信服务器.Op ...

  8. 【原】iOS学习之XMPP环境搭建

    XMPP环境搭建 1> 搭建XMPP环境需要几个辅助工具: Java Openfire 采用Java开发,因此我们需要先安装Java环境 XAMPP XAMPP(Apache+MySQL+PHP ...

  9. iOS开发之XMPP即时通讯简单实现

    首先搭载服务器和数据库 搭载服务器我用的是openfire,数据库用的是mysql 这里推荐两个链接 配置mysql,用的是mysql workbench http://justsee.iteye.c ...

随机推荐

  1. Ruby:字符串处理函数

    字符串处理函数1.返回字符串的长度 str.length => integer 2.判断字符串中是否包含另一个串 str.include? other_str => true or fal ...

  2. asp.net运行时错误:没有为扩展名".cshtml"注册的提供程序。

    解决方法: 一.  在machine.config或web.config中的<compilation><buildProviders>节注册一个.请确保所注册的提供程序具有包含 ...

  3. Linux Oracle删除归档日志

    今天遇到Oracle报这样的错:ORA-00257 查看了下,原来是Oracle的归档日志满了,解决方案两个 一:增加归档日志大小 二:删除无用的归档日志(我们选择这个方案) 什么也不说了Linux下 ...

  4. php memcache扩展 出现错误dyld: Symbol not found: _mmc_queue_free

    mac 10.10 系统安装php memcache扩展 在使用memcache的时候出现错误dyld: Symbol not found: _mmc_queue_free需要重新编译memcache ...

  5. C语言打印最长字符串

    编程在一个已知的字符串中找最长单词,假定字符串中只含字母和空格,空格用来分隔不同单词. ]; printf("请输入字符串:"); fgets(p, , stdin); ; ; ; ...

  6. C#中的using和yield return混合使用

    最近写代码为了为了省事儿用了几个yield return,因为我不想New一个List<T>或者T[]对象再往里放元素,就直接返回IEnumerable<T>了.我的代码里还有 ...

  7. 配置nginx负载均衡

    配置nginx负载均衡 执行命令:vi /usr/local/nginx/sbin/nginx/conf/nginx.conf 修改为: worker_processes  2; events {   ...

  8. android 定义 程序 Scheme 接收特定URI开启Activity

    场景:通过浏览器打开URL或者扫描软件扫描URL来启动本地应用 <intent-filter> <category android:name="android.intent ...

  9. ngixn编译安装时,pcre的处理

    nginx编译时pcre会提示找不到libpcre.so.1 ./configure --hlep --without-pcre disable PCRE library usage   不使用pcr ...

  10. Windows Phone 8.1 新特性 - 控件之FlipView

    本篇为大家介绍 Windows Phone 8.1 中新增的 FlipView 控件,它的中文名字叫做:翻转视图. 虽然听起来有点拗口,但是它的用途大家一定不会陌生.在 Windows Phone 8 ...