自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 webtc代码流程

接收数据:OnPacketReceived->ViENetworkImpl::ReceivedRTPPacket()->ViEChannel::ReceivedRTPPacket()->ViEReceiver::ReceivedRTPPacket()->ViEReceiver::InsertRTPPacket()->ModuleRtpRtcpImpl::IncomingRtpPacket()->R

2013-07-16 20:47:46 1571

转载 对照Jingle的XMPP stanza理解Libjingle的几个关键数据结构

1.SessionManager管理多个Session:Cpp代码  stanza理解Libjingle的几个关键数据结构" style="margin:0px; padding:0px; border:0px; list-style:none">class SessionManager {    typedef std::map SessionMap;  

2013-07-14 20:57:41 869

转载 ICE协议

这个文件描述了以UDP为基础的请求/回答模式的多媒体会话的NAT穿越的协议。这个协议名叫ICE。ICE利用了STUN协议和它的扩展版本TURN。ICE可以被任何请求/问答模式的协议利用。例如sip。1. 简介RFC 3264 定义了一个双向会话描述协议(SDP),以建立多媒体回话。这种请求/回答模式被sip利用。       请求/回答的协议很难穿越NAT。因为它们想要建立

2013-07-14 17:22:35 1161

转载 简析STUN协议

STUN简介STUN(Simple Traversal of UDP over NATs,NAT 的UDP简单穿越)是一种网络协议,它允许位于NAT(或多重NAT)后的客户端找出自己的公网地址,查出自己位于哪种类型的NAT之后以及NAT为某一 个本地端口所绑定的Internet端端口。这些信息被用来在两个同时处于NAT 路由器之后的主机之间建立UDP通信。该协议由RFC 3489定义。一旦

2013-07-14 15:42:32 799

转载 P2P的原理和常见的实现方式(为libjingle开路)

为了项目的后期IM应用,最近在研究libjingle,中间看了也收集了很多资料,感慨网上很多资料要么太过于纠结协议(如STUN、ICE等)实现细节,要么中间有很多纰漏。最后去伪存真,归纳总结了一下,希望对以后的同行有些许帮助。   如果有什么需要讨论或者指正的,欢迎留言或者邮件peakflys@gmail.com                            P2P实现的原理

2013-07-13 20:16:53 836

转载 libJingle中关于p2p的一段文字翻译

Peer-to-Peer Component     P2P组件 This component manages the connection between the local and remote computer. It sends and receives peer to peer data across the network, generates local

2013-07-13 20:15:29 1095

转载 libjingle源码分析之:Session和Transport

摘要        本文介绍了Session和Transport模块。概述        Session、SessionClient、Transport和TransportChannel的关系如下图所示:模块解析SessionClientSessionManager中,按content_type来区分不

2013-07-13 20:14:44 937

转载 libjingle源码分析之:P2P

摘要        本文主要介绍了libjingle库中的P2P模块。概述        在libjingle中,P2P模块并非一个完全独立的模块,它的实现依赖于Jingle协议,需要通过libjingle中的其它模块获取必要的信息和支持。P2P模块的内部结构及与其它模块的关系如下图所示。        如前文所示,Soc

2013-07-13 20:14:20 1024

转载 libjingle源码分析之:Thread和SocketServer

摘要      本文主要分析了libjingle源码中的Thread和SocketServer模块,以及它们是如何协同工作的。首先,介绍了Thread和SocketServer的模型,给出了如何使用Thread的示例。然后,分析了Thread中的默认消息循环的处理流程和如何自己处理消息。概述      libjingle源码中,Thread和So

2013-07-13 20:12:39 1108

转载 libjingle翻译之《Important Concepts(重要概念)之Data Packets(数据包)》

Data Packets(数据包)计算机间的P2P数据被多重协议封装,就像下图演示的,具体被什么协议封装依懒于实现的应用程序。并不是每个应用程序都能用到所有的协议,例如:文件传输应用使用了pseudo-tcp协议,但是语音聊天应用却没有使用

2013-07-13 20:10:36 729

转载 libjingle翻译之《Important Concepts(重要概念)之Candidates(候选)》

Candidates(候选)libjingle一个主要的好处就是它可以穿透防火墙和NAT设备进行链接协商。libjingle使用ICE机制穿透防火墙。libjingle应用程序第一步要做的就是在试图协商一个链接时为其它计算机的链入创建一个潜在的本地端口地址链表。链表中的每个潜在的地址就称作一个候选。候选就是“IP地址:端口”对应对,这些对应对使应用程序和其它计算机互联(技术上,这些对应对只在本

2013-07-13 20:09:34 706

转载 libjingle翻译之《Important Concepts(重要概念)之Transports, Channels, and Connections(传输、通道、链接)》

Transports, Channels, and Connections(传输、通道、链接)每个p2pTransportChannel代表了本地机与远程机的数据通道。这个通道实际上包含着(隐藏着)一个设计复杂而健壮的体系。P2PTransportChannel管理着大量的不同的Connection对象,每个对象代表了一个不同种类的链接(UDP,TCP等)。一个Connection对象实际上封

2013-07-13 20:07:40 1255

转载 libjingle翻译之《Important Concepts(重要概念)之Connections(链接)》

Connections(链接)一个p2p的链接实际上由两个通道组成。●  session negotiation channel(也称作signaling channel),会话协商通道。是为数据链接服务的沟通通道。这个通道被用来回应取得一个链接的请求,交换候选,和协商会话的细节(比如:套接字地址,需要的编码方案,交换的文件,链接改变请求,终止请求)。这个通道是两个计算机之间建立的第一个链

2013-07-13 20:06:19 650

转载 libjingle翻译之《Important Concepts(重要概念)之SSL Support(SSL支持)》 分类: libjingle

libjingle 支持两种类型的SSL:● OpenSSL (for UNIX)● SChannel (for Windows)使用SSL,应用程序必须执行如下步骤:1、#define FEATURE_ENABLE_SSL (如果编译器是Visual Studio,这个设置是在工程设置中定义的,而不是在代码中)。2、确定SSL_USE_OPENSSL 或SSL_USE_SCH

2013-07-13 20:03:47 974

转载 libjingle翻译之《Important Concepts(重要概念)之Naming Conventions(命名约定)》

Naming Conventions(命名约定) libjingle有一些命名约定,比较有用;OnSomeMethod   凡是以“On”开头的函数,大多和一个信号成员关联起来了,不是在本身对象内就是在其它对象内实现了这种关联。如果此函数被所在对象调用,大有可能是在不同的线程内调用的(即对象通过另一个线程调用自身的函数)。SomeMethod_w  在worker thread中(

2013-07-13 20:02:56 662

转载 libjingle翻译之《Important Concepts(重要概念)之Threads(线程)》

Threads(线程) libjingle 考虑到使用到此库的应用程序的性能,libjingle内部支持多线程。其内组件使用1或2个全局线程:● signaling thread  被用作创建底层(基础)组件,    例如:Session Management,Control,XMPP Messaging组件。● worker thread  ( 有时称作channel thr

2013-07-13 19:55:52 702

转载 libjingle翻译之《关于libjingle》

Libjingle 是google talk voice(语音聊天) 和 p2p interoperability(点对点操作)库,是提供了google talk,p2p文件共享和语音呼叫能力的组件集,libjingle包中包含了jingle和jingle语音以及两个被xmpp标准提议的扩展。  About libjingle  (关于libjingle) Libjingl

2013-07-13 19:53:41 619

转载 libjingle翻译之《Important Concepts(重要概念)之Signals (信号)》

Important Concepts(重要概念)你应该理解libjingle中以下的重要概念:● Signals                                          (信号)● Threads and Messages                     (线程、消息)● Naming Conventions                    

2013-07-13 19:50:58 585

原创 linux mint 13 支持KVM spice

官方qemu-kvm不支持,下载最新源码加--enable-spice编译,还要编译spice-server。并且/dev/kvm期限要root和777

2013-07-03 22:56:39 848

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除