`
wsyandy
  • 浏览: 38812 次
  • 来自: ...
社区版块
存档分类
最新评论

即时通讯 XMPP IM

阅读更多
我基本上分为3部分:

1 是关于XMPP 协议是啥,IM 是啥以及一个比较有名的开源实现,该开源实现包括三个部分(Spark、Smack和Openfire);

2 讲如何开发基于Spark 的客户端IM 插件部分;

3 讲如何开发基于Openfire 服务器端的插件部分。

第一部分
什么是XMPP?
Extensible Messaging and Presence Protocol,简单的来讲,它就是一个发送接收处理消息的协议,但是这个协议发送的消息,既不是二进制的东东也不是字符串,而是XML。正是因为使用了XML作为消息传递的中介,Extensible 才谈的上。


什么是IM ?

Instant Messenger,及时通信软件,就是大家使用的QQ、MSN Messenger和Gtalk等等。其中Gtalk 就是基于XMPP 协议的一个实现,其他的则不是。当前IM 几乎作为每个上网者必然使用的工具,在国外的大型企业中有一些企业级的IM应用,但是其商业价值还没完全发挥出来。设想既然XMPP 协议是一个公开的协议,那么每个企业都可以利用它来开发适合本身企业工作,提高自身生产效率的IM;

Spark Smack 和 Openfire

这三个合起来就是一个完整的XMPP IM 实现。
服务器端——Openfire
    Openfire 是基于XMPP 协议的IM 的服务器端的一个实现,虽然当两个用户连接后,可以通过点对点的方式来发送消息,但是用户还是需要连接到服务器来获取一些连接信息和通信信息的,所以服务器端是必须要实现的。Openfire 也提供了一些基本功能,但真的很基本的!庆幸的是,它也提供插件的扩展,像Spark 一样,我同样强烈建议使用插件扩展的方式来增加新的功能,而不是修改人家的源代码。

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

XMPP 传输协议的实现——Smack
     Smack 是一个XMPP 协议的Java 实现,提供一套可扩展的API,
三者都是基于Java 语言的实现,因此对于熟悉Java 的开发者来说不是很难


三者之间的关系



  • 大小: 45.3 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics