我基本上分为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
分享到:
相关推荐
Java开发 基于Xmpp的IM即时通讯项目
Messaging and Presence Protocol (XMPP) that provide basic instant messaging (IM) and presence functionality in conformance with the requirements in RFC 2779. This document obsoletes RFC 3921.
agsXMPP\XMPP协议--即时通讯工具实现原理
本课程使用asmack、openfire等开源Library和软件实现一款基于Android的即时通讯软件。该软件支持普通的文本聊天,文件传输、群聊等功能。并且自己用openfire搭建服务端,通过本课程的学习,学员完全可以自己搭建和...
基于XMPP的企业即时通讯IM源代码,delphi开发,包括所有资源文档
即时通讯(IM)涉及多个组件,如客户端、服务器和可能的数据库。这里是一个简化的Java即时通讯项目示例,仅作为起点供您参考。您可以在此基础上扩展功能以构建完整的IM应用程序。 这个示例实现了一个基本的即时通讯...
xmpp 协议即时通讯的源代码,是用vc6进行编译,知道通讯的原理
基于XMPP的IM通讯,开源项目openfire的android使用例子
android下的XMPP对应smack4.1.4下实现注册,登录,单聊文本,语音,图片发送,添加好友,修改密码,注销等功能(Androidstuido开发环境)
Android基于Xmpp的即时通讯
Delphi11.3基于XMPP(JABBER)协议的IM即时通讯客户端源码.zip
【仿微信即时聊天】xmpp4Android 第一期,android源码0分下载了
abber 是著名的 Linux 即时通讯服务服务器,它是一个自由开源软件。什么是即时通讯服务器呢?就是类似AIM,ICQ,MSN或Yahoo Message 类似的服务器;只是Jabber能让我们自己架即时通讯服务器,可以在Internet上应用,...
开源免费的IM,功能和UI符合国内习惯,比XMPP具有更适合移动端的协议,可以作为IM组件代替环信、融云、网易云信等云通讯和XMPP.zip,开源即时通讯(野火IM)系统Android端 高仿微信
XMPP协议分析,xmpp是即时通讯IM中比较普遍的应用
基于XMPP框架的即时通讯 ios客户端 只实现了基础的通信功能。
开源免费的即时通讯软件,功能和UI符合国内习惯,比XMPP具有更适合移动端的协议,可以作为IM组件代替环信、融云、网易云信等云通讯和XMPP
Tigase开源项目,使用java编写,是个标准的Jabber(XMPP)协议服务端项目,用户数,均衡,符合要求。主页http://www.tigase.org/ 除了tigase开源项目还有: Openfire (Wildfire) 3.x(http://www.igniterealtime.org/)...