Chinaunix首页 | 论坛 | 博客
  • 博客访问: 17399
  • 博文数量: 1
  • 博客积分: 150
  • 博客等级: 入伍新兵
  • 技术积分: 22
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-11 23:53
文章分类
文章存档

2011年(1)

我的朋友

分类: C/C++

2011-03-16 04:37:51

  XMPP的全称是Extensible Messaging and Presence Protocol,是一种用于即时消息传递的协议。目前很多即时聊天工具都采用这种协议,包括googleGtalk/GmailXMPP的核心协议有RFC3920 [Extensible Messaging and Presence Protocol(XMPP): Core]RFC3921 [Extensible Messaging and Presence Protocol (XMPP):Instant Messaging and Presence]. 对于其他一些比较具体的应用,XMPP协议支持对其进行扩展,也就是XMPP Extensions,以xep-###来命名。比如libjingle除了支持即使文本消息的传输,还支持语音的传输,所以libjingle就支持了核心XMPP(RFC390/RFC3921)的协议栈,另外还支持了语音需要扩展协议,这些协议有XEP-0167: Jingle RTP SessionsXEP-0176: Jingle ICE-UDP Transport MethodXEP-0177: Jingle Raw UDP Transport Method;我想这就是libjingle名称的来源—Library of Jingle Protocol.

  Libjingle也是Gmail/Gtalk的底层库,Google公开了libjingle的源代码,赶巧碰上机会看了看libjingle的源代码,个人觉得写得很好,到处充满了巧妙的设计,以及对设计模式的扩展应用。决定研究一下,采纳Chris的建议,用blog记录下来研究的过程。

  已经看了一部分Libjingle的源代码,但是还没有涉及到XMPP及其扩展协议的协议栈,所以决定从libjingle使用的各种底层结构开始研究,比如线程管理,消息队列管理,日志管理等。对这些搞的差不多懂了之后,可以按照自己的需要加一些debug code,并使用Gmail/Gtalk帐号登录libjingle的客户端,和别的Gmail/Gtalk账户进行语音聊天,抓取log,对协议栈进行分析。

  现在的Gmail可以进行视频通信,暂时还不清楚libjingle是否支持Jingle的视频协议XEP-0180: Jingle Video via RTP。以后的研究过程中再慢慢搞清楚。

阅读(4068) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:没有了

给主人留下些什么吧!~~