XMPP(一):简单介绍

用了一个星期的时间接触了XMPP协议,以及和这个协议有关的开源的Smack、Spark、Openfire。对XMPP的接触告一段落,在此总结一下学到的东西。有些地方是个人的理解,不对的地方请指出。

      (一)   有关XMPP、Smack、Spark、Openfire的简单介绍

      (二)   开发一个简单的基于XMPP的IM客户端,实现文字交流

      (三)   IM客户端实现文件传输

      (四)   Openfire插件编写简单介绍

  什么是XMPP?我也是第一次接触,直接google,

          维基百科:http://zh.wikipedia.org/wiki/XMPP

          百度科:http://baike.baidu.com/view/189676.htm

  简单总结一下,XMPP(Extensible Messaging and Presence Protocol,前称)是一种以XML为基础的开放式实时通信协议,是经由互联网工程工作小组(IETF)通过的互联网标准。

  简单的说,XMPP就是一种协议,一种规定。啥意思?就是说,在网络上传东西,要建立连接,TCP/IP连接,建立后再传东西,而XMPP就是规定你传的东西的格式。XMPP是基于XML的协议。比如说,传个Message,需要在TCP连接上传输一个XML流:

 

   
   
< message from ='[email protected]/pda' to ='[email protected]' type ='chat' > < body > Who's there? </ body > < active xmlns ='http://jabber.org/protocol/chatstates' /> </ message >

来自:http://xmpp.org/extensions/xep-0085.html

  什么好处?解析容易,阅读容易。

  可以看一下:http://www.sunbo.name/20080409/xmpp

  XMPP的具体内容:http://xmpp.org/xmpp-protocols/xmpp-extensions/

  一小部分有中文翻译:http://wiki.jabbercn.org/%E9%A6%96%E9%A1%B5

  什么是Smack?百度百科:http://baike.baidu.com/view/1946101.htm

  Smack是一个开源,用Java编写的易于使用的XMPP(jabber)客户端类库。这样我们就可以通过Smack方便的使用XMPP了,不用自己直接解析XML流,Smack可以帮助我们提取有用的消息,发送XML流。

  可以在这里下载Smack及其源代码:http://www.igniterealtime.org/downloads/index.jsp

XMPP(一):简单介绍_第1张图片

  什么是Openfire和Spark?

  Openfire是基于XMPP的开源的实时协作(RTC)服务器。(http://baike.baidu.com/view/1483859.htm

  Spark是基于XMPP的开源的客户端。

  两者都是基于Java语言实现的。都提供了一些基本的功能,支持插件,可以通过插件扩展来增加新的功能。    (http://phoenixtoday.blogbus.com/logs/17246727.html

  Openfire及其源代码下载http://www.igniterealtime.org/downloads/index.jsp

XMPP(一):简单介绍_第2张图片

  Openfire的安装与配置:http://www.cnblogs.com/charley_yang/archive/2011/03/27/1997052.html

  Spark的下载,要用SVN,

XMPP(一):简单介绍_第3张图片

  可以参考:http://lijinyan3000.iteye.com/blog/182017(这篇文章刚开始就提供了一个下载好的Spark源代码,可以直接下)。

  惭愧的是这些源代码由于各种原因我都没有运行成功,虽然网上有很多方法,我只是下载下来阅读了一下。Smack,Spark,Openfire源代码中都有开发文档,可以结合源代码阅读进一步了解。

 

原文:http://www.cnblogs.com/jacob-coding/archive/2011/05/24/2055954.html <script type="text/javascript"></script>

你可能感兴趣的:(xml,SVN,互联网,百度,网络协议)