一.xmpp openfire smack spark介绍

前言:

    呵呵,上一个项目结束了,整理了一下,想一想,好像没什么事奥,闲着也是闲着,还是去问问我们的项目经理下一个项目可能要做什么吧,先做一下准备,我刚提起,他就给我说,我正要给你说呢,公司可能要做一个聊天的项目,让我看看xmpp,并写个Demo给他,这不,我这两天在网上查了一些质料,分享一下,第一次写博客,有什么建议,多 多指教。闲话少说,进入正题: 


一:XMPP介绍

      XMPP(可扩展消息处理现场协议)全称:Extensible Messaging and PresenceProtocol,是基于可扩展标记语言(XML)的协议,它是一个发送接收处理消息的协议,它用于即时消息(IM)以及在线现场探测。它在促进服务器之间的准即时操作。这个协议可能最终允许因特网用户向因特网上的其他任何人发送即时消息,即使其操作系统和浏览器不同。

 IM(及时通信软件),全称:InstantMessenger,就是大家使用的QQ、MSNMessenger和Gtalk等等。其中Gtalk 就是基于XMPP 协议的一个实现,其他的则不是。

    XMPP的前身是Jabber,一个开源形式组织产生的网络即时通信协议。XMPP目前被IETF国际标准组织完成了标准化工作。

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

   XMPP中定义了三个角色,客户端,服务器,网关。通信能够在这三者的任意两个之间双向发生。服务器同时承担了客户端信息记录,连接管理和信息的路由功能。网关承担着与异构即时通信系统的互联互通,异构系统可以包括SMS(短信),MSN,ICQ等。基本的网络形式是单客户端通过TCP/IP连接到单服务器,然后在之上传输XML。

        Java领域的即时通信可以考虑openfire+spark+smack。当然也有其他的选择。我选择的是这个。

   Openfire,Spark和smack这三个合起来就是一个完整的XMPP IM 实现。包括服务器端(Openfire),客户端(Spark),XMPP 传输协议的实现(Smack)(记住,XMPP是一个协议,协议是需要实现的,Smack起到的就是这样的一个作用)。三者都是基于Java 语言的实现。


二:Spark介绍

      Spark 提供了客户端一个基本的实现,并提出了一个很好的插件架构,这对于开发者来说不能不说是一个福音。我强烈建议基于插件方式来实现你新增加的功能,而不是去改它的源代码,这样有利于你项目架构,把原始项目的影响降到最低。


三:Openfire介绍

    Openfire采用Java开发,开源的实时协作(RTC)服务器基于XMPP(Jabber)协议的IM 的服务器端的一个实现,虽然当两个用户连接后,可以通过点对点的方式来发送消息,但是用户还是需要连接到服务器来获取一些连接信息和通信信息的,所以服务器端是必须要实现的。

    Openfire 也提供了一些基本功能,但真的很基本的!庆幸的是,它也提供插件的扩展,像Spark 一样,同样强烈建议使用插件扩展的方式来增加新的功能,而不是修改人家的源代码。

    Openfire您可以使用它轻易的构建高效率的即时通信服务器.

    Openfire安装和使用都非常简单,并利用Web进行管理。单台服务器可支持上万并发用户。

    Openfire由于是采用开放的XMPP协议,您可以使用各种支持XMPP协议的IM客户端软件登陆服务.


四:Smack介绍

    Smack 是一个XMPP 协议的Java 实现,提供一套可扩展的API,不过有些时候,你还是不得不使用自己定制发送的XML 文件内容的方式来实现自己的功能

 



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值