即时通信(1):XMPP简介及环境搭建

什么是即时通信?

  • 即时通讯(Instant Messaging)是目前Internet上最为流行的通讯方式,各种各样的即时通讯软件也层出不穷,服务提供商也提供了越来越丰富的通讯服务功能。

即时通讯的实现方式?

  • 即时通讯有多种实现方式,例如:XMPP、环信、融云等。本文则对XMPP的使用进行介绍。

什么是XMPP?

  • XMPP(XML,Messages,Presence,Protocol)是可扩展通讯和表示协议,基于XML(可扩展标记语言),可用于即时通信(IM)。
  • 目前有四种主流IM(即时通讯)协议:XMPP(可扩展通讯和表示协议)、IMPP(即时信息和空间协议)、PPIM(空间和即时信息协议)、SIMPLE(针对即时通讯和空间平衡扩充的进程开始协议)。在这四种协议中,最灵活的就是XMPP,它是基于XML协议的,继承了在XML环境中灵活的发展性,因此,基于XMPP的应用程序具有超强的可扩展性。

XMPP优点:

  • 开放:XMPP协议是由JSF开源社区组织开发的,不属于任何的机构和个人,所以XMPP是自由、开放、公开的,而且易于了解。在客户端、服务器、组件、源码库等方面,都有了多种实现。
  • 标准:互联网工程工作组将XMPP于2002年正式列为认可的实时通讯及Presence技术。
  • 分布式的网络架构:XMPP协议虽然是Client/Server的通讯模式,但是XMPP协议本身并没有这样的限制。而分布式网络是由分布在不同地点且具有多个终端的节点机互连而成,网络中的任意一点均至少与两条线路相连,当任意一条线路发生故障,通信还可经其他链路完成,具有较高的可靠性,同时网络易于扩充。XMPP网络架构和电子邮件十分相似,其核心协议通信方式是先创建一个Stream,然后以TCP传递XML数据流,没有中央服务器,任何人都可以运行自己的XMPP服务器,使个人或组织能够掌握他们的实时通讯体验。
  • 良好的扩展性:基于XML建立起来的应用具有良好的语义完整性和扩展性。
  • 应用广泛:XMPP除了可用在即时通信的应用程序,还能用在网络管理、内容供稿、协同工具、档案共享、游戏、远端系统监控等。
  • 安全性:XMPP在Client-to-Server通信和Server-to-Client通信中都使用TLS(Transport Layer Security)协议作为通信通道的加密方法,保证通信的安全。

XMPP实现即时通讯

实现即时通讯至少需要一个服务器端、两个客户端。下面我们准备需要的环境:XMPP服务器、XMPP客户端(辅助调试)

XMPP环境搭建

搭建XMPP环境需要几个辅助工具:

  • XAMPP
    XAMPP(Apache+MySQL+PHP+PERL)是一个功能强大的XAMPP软件站集成软件包,是一个易于安装且包含MySQL、PHP和Perl的Apache发行版,非常容易安装和使用,只需下载、解压缩、启动即可。
XAMPP1
XAMPP2
XAMPP3
XAMPP4
XAMPP5
XAMPP6
  • Openfire
    Openfire采用Java开发,开源的实时协作(RTC)服务器,基于XMPP(Jabber)协议。其安装和使用都非常简单,利用Web进行管理。单台服务器可支持上万并发用户。
    因为Openfire服务是基于JAVA语言写的,所以电脑必须要有java运行环境。安装JDK成功后进行Openfire的安装。
Openfire1
Openfire2
Openfire3
Openfire4
Openfire5
Openfire6
Openfire7

此时需要创建数据库以供使用:


Openfire8
Openfire9

创建数据库结束,需要导入表,此时要去openfire文件夹中获取需要的文件,位置如下:


Openfire10
Openfire11
Openfire12
Openfire13
Openfire14
Openfire15
Openfire16
Openfire17
Openfire18
Openfire19
Openfire20
Openfire21
XMPP客户端环境搭建

搭建XMPP客户端环境使用spark,辅助调试。XMPP系统的一个设计标准是必须支持简单的客户端。事实上,XMPP系统架构对客户端只有很少的几个限制。一个XMPP客户端必须支持的功能有:

  • 通过TCP套接字与XMPP服务器进行通信
  • 解析组织好的XML信息包
  • 理解消息数据类型
spark1
spark2

环境配置结束。

工程中添加XMPP
  • 创建新工程
  • 导入XMPP框架
  • 引入XMPP需要的依赖库libxml2和libresolv
  • 设置路径/usr/include/libxml2
导入XMPP
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,968评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,601评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,220评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,416评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,425评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,144评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,432评论 3 401
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,088评论 0 261
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,586评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,028评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,137评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,783评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,343评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,333评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,559评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,595评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,901评论 2 345

推荐阅读更多精彩内容