Libjingle库 综述

   国内现在很多语音聊天工具都是基于TURN方式实现的,包括YY、AK等等,这种方式对于服务器的性能要求很高,而且在用户量增大的时候,服务器压力也会越来越大,用户的语音质量也会受到很大影响。而基于P2P方式实现的语聊服务器,就可以极大的避免这种情况的发生,而且用户的语音体验也会非常好。
   通过上文(P2P的原理和常见的实现方式(为libjingle开路))我们知道,因为NAT设备没有固定标准的原因,导致并不能100%的实现P2P,但是根据现在通用的ICE&STUN的方式,P2P的成功率可以达到90%多。前段时间在找使用这种方法实现的成熟库,最后猛然发现libjingle就在那里。
   通过一个多星期的研究,在此记录一下libjingle库的大致情况,如有不妥,希望朋友们可以留言或者邮件(peakflys@gmail.com)指正。

Libjingle综述   
   Libjingle是一个方便实现P2P传输的开源库,由google公司开发,并与20051215日发布第一个版本,可以粗略的看成是Jingle协议的C++实现库(peakflys注:只是和Jingle协议非常相似,并不完全兼容,区别以后介绍)Google Talk即是基于这个库开发的。通过libjingle我们可以建立一个直通的网络连接(无视中间的NAT、防火墙、中继服务器和代理等),无需特别关心Session建立的细节(加解密、格式等),直接进行数据的交换。它也实现了一些辅助的功能,例如XML的解析和网络代理的处理。我们通过它可以实现如下的应用:

·一个多用户的语音聊天应用

·一个多用户的视频会议应用

·一个多用户的现场音乐、流媒体应用

·一个点到点的文件传输和共享的应用

目前库的版本是0.7.1(2012102日发布),支持WindowsUNIX/Linux开源许可用的是Berkeley-style,这也就意味着,可以任意的修改和扩展它来更好的满足自己产品的需要。

库的SVN路径:http://libjingle.googlecode.com/svn/trunk/talk

       值得注意的是:

    Libjingle库本身的实现依赖于一些第三方库,例如: 语音聊天依赖于Linphone或者GIPS,这取决于使用者的平台

    Libjingle只是一个客户端的实现, relay Server协议和STUN协议(如果需要),还需要自己实现

实现relay Server后的网络结构(STUN使用 网络上现有的,例如Google等公司提供的公有STUN服务器)

实现relay ServerSTUN Server后的网络结构:


STUN协议的实现不难,网上也有很多开源的代码实现,关键是需要一些资源的部署(需要两个公网IP)

 

P2P的关键实现在客户端,通过使用libjingle我们可以快速的构造一个健壮高效的P2P Client,如果仅仅是实现类似于Skype或者QQ那样的两人或者几人聊天,服务器方面实现就非常容易。但是如果要实现大用户参与的语音室,那么我们就得专注于服务器广播包的优化了。
                                                                                 by peakflys 16:53:47 Wednesday, January 30, 2013

posted on 2013-01-30 16:54 peakflys 阅读(17678) 评论(3)  编辑 收藏 引用 所属分类: P2P

评论

# re: Libjingle库 综述 2013-01-30 23:04 免费空间

写的挺好 这个是楼主翻译的 还是个人写作的?  回复  更多评论   

# re: Libjingle库 综述 2013-01-31 11:21 peakflys

文章黑体字部分还有图片来自Google的英文开发文档,文档首页见:https://developers.google.com/talk/libjingle/index @免费空间  回复  更多评论   

# re: Libjingle库 综述 2014-07-06 20:52 呆贼兄

你好,请问有TURN server的源码实例吗?想要做一个webrtc的转发服务器。有相关经验可以传授吗?  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2024年10月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

导航

统计

公告

人不淡定的时候,就爱表现出来,敲代码如此,偶尔的灵感亦如此……

常用链接

留言簿(4)

随笔分类

随笔档案

文章档案

搜索

最新评论

阅读排行榜

评论排行榜