Libjingle和各协议的关系
一、相关协议简介
·XMPP协议(核心协议):
全称:The Extensible Messaging and Presence Protocol,即可扩展通讯和表示协议。说白了,就是规定基于XML流传输指定节点数据的协议。这么做的好处就是统一(peakflys注:大家都按照这个定义,做的东西就可以相互通讯、交流,这个应该很有发展前景!)。它是一个开放并且可扩展的协议,包括Jingle协议 都是XMPP协议的扩展。(peakflys注:使用Wireshark抓包时,早期的版本可能找不到这个协议,这时候可以选择Jabber,它是XMPP协议的前身)。现在很多的IM都是基于XMPP协议开发的,包括gtalk等。
·Jingle协议(重要的协议):
Jingle协议是XMPP协议上的扩展协议,它着手解决在XMPP协议框架下的点对点的连接问题,也即P2P连接。在Jingle框架下,即使用户在防火墙或是NAT网络保护之下,也能够建立连接,从而提供文件传送、视频、音频服务等。纲领性文件是XEP-0166
·TURN协议:
全称:Traversal Using Relays around NAT,顾名思义,就是通过中继服务器来传输数据的协议。
·STUN协议:
全称:Simple Traversal of UDP over NATs,即NAT 的UDP简单穿越,它允许位于NAT(或多重NAT)后的客户端找出自己的公网地址,查出自己位于哪种类型的NAT之后以及NAT为某一个本地端口所绑定的Internet端端口。知道NAT类型并且有了公网IP和port,P2P就方便多了。
·ICE协议:
全称:Interactive Connectivity Establishment,即 交互式连接建立,说白了,它就是利用STUN和TURN等协议找到最适合的连接。
二、Libjingle和各协议的关系
Jingle协议的发起方是Google,而libjingle库也是Google公司实现,ICE协议又基本包含在Jingle协议里,所以只需要知道libjingle和Jingle协议的区别即可。www.2cto.com
历史:Libjingle大概和jingle XMPP 扩展在同一时间被建立。Libjingle的团队建立了他们自己的协议去处理回话协商,后来和使用标准化的jingle(基于XMPP的标准)一起工作。尽管,jingle和libjingle是非常相似的,但是它们是不一样的,而且不能共同使用。现在libjingle的源码版本依然使用原始的网络协议,跟以前的稍微有些不同,而且无法兼容jingle的规范。不过它还是足够的接近jingle,所以学习jingle的说明书是值得的。类似的“接近但不是一样”,libjingle的视频内容描述(早期的jingle的视频内容描述格式XEP-0167),ICE的传输描述(早期的jingle的ICE传输XEP-0176),以及流的UDP描述(早期的jingle流UDP的传输描述XEP-0177)
三、相关文档:
RFC3921(下载: RFC3921) XMPP协议的核心文档
RFC3489(STUN)(下载:RFC3489) STUN协议的草案
rfc5245(ICE) (下载:RFC5245) ICE协议的草案
xep-0166(Jingle)(下载:XEP-0166) Jingle协议的官方主体文档
xep-0176(Jingle ICE-UDP)(下载:XEP-0176) 定义Jingle和ICE结合的官方文档(主要就是用XMPP作为ICE信道来重新描述ICE协议)

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











기계력 보고서 편집자: 우신(Wu Xin) 국내판 휴머노이드 로봇+대형 모델팀이 옷 접기 등 복잡하고 유연한 재료의 작업 작업을 처음으로 완료했습니다. OpenAI 멀티모달 대형 모델을 접목한 Figure01이 공개되면서 국내 동종업체들의 관련 진전이 주목받고 있다. 바로 어제, 중국의 "1위 휴머노이드 로봇 주식"인 UBTECH는 Baidu Wenxin의 대형 모델과 긴밀하게 통합되어 몇 가지 흥미로운 새로운 기능을 보여주는 휴머노이드 로봇 WalkerS의 첫 번째 데모를 출시했습니다. 이제 Baidu Wenxin의 대형 모델 역량을 활용한 WalkerS의 모습은 이렇습니다. Figure01과 마찬가지로 WalkerS는 움직이지 않고 책상 뒤에 서서 일련의 작업을 완료합니다. 인간의 명령을 따르고 옷을 접을 수 있습니다.

ORM(객체 관계형 매핑) 프레임워크는 Python 개발에서 중요한 역할을 하며, 객체와 관계형 데이터베이스 사이에 브리지를 구축하여 데이터 액세스 및 관리를 단순화합니다. 다양한 ORM 프레임워크의 성능을 평가하기 위해 이 기사에서는 다음과 같은 널리 사용되는 프레임워크를 벤치마킹합니다. sqlAlchemyPeeweeDjangoORMPonyORMTortoiseORM 테스트 방법 벤치마크에서는 100만 개의 레코드가 포함된 SQLite 데이터베이스를 사용합니다. 테스트는 데이터베이스에서 다음 작업을 수행했습니다. 삽입: 테이블에 10,000개의 새 레코드를 삽입합니다. 읽기: 테이블의 모든 레코드를 읽습니다. 업데이트: 테이블의 모든 레코드에 대해 단일 필드를 업데이트합니다. 삭제: 테이블의 모든 레코드를 삭제합니다. 각 작업

ORM(객체 관계형 매핑)은 개발자가 SQL 쿼리를 직접 작성하지 않고도 객체 프로그래밍 언어를 사용하여 데이터베이스를 조작할 수 있도록 하는 프로그래밍 기술입니다. Python의 ORM 도구(예: SQLAlchemy, Peewee 및 DjangoORM)는 빅 데이터 프로젝트의 데이터베이스 상호 작용을 단순화합니다. 장점 코드 단순성: ORM을 사용하면 긴 SQL 쿼리를 작성할 필요가 없으므로 코드 단순성과 가독성이 향상됩니다. 데이터 추상화: ORM은 데이터베이스 구현 세부 사항에서 애플리케이션 코드를 분리하여 유연성을 향상시키는 추상화 계층을 제공합니다. 성능 최적화: ORM은 캐싱 및 일괄 작업을 사용하여 데이터베이스 쿼리를 최적화함으로써 성능을 향상시키는 경우가 많습니다. 이식성: ORM을 통해 개발자는 다음을 수행할 수 있습니다.

pip 프로토콜의 의미를 심층적으로 분석하려면 특정 코드 예제가 필요합니다. 소개: Python 세계에서는 pip(즉, pipinstall)가 타사 라이브러리를 설치하고 관리하는 데 선호되는 방법입니다. Python 패키지 관리 도구로, 단순성, 효율성, 사용 용이성 및 편의성으로 인해 개발 프로세스에서 널리 사용됩니다. 이 기사에서는 pip 프로토콜의 의미를 심층적으로 분석하고, 특정 코드 예제를 통해 pip의 중요한 역할과 사용법을 보여주고, 독자가 pip를 더 잘 이해하고 사용하도록 돕습니다. 1. 핍 프로토콜

"Golang의 핵심은 단일 코어 작동으로 제한됩니까? 》Golang은 현대 프로그래밍 언어로서 동시 처리 및 성능면에서 탁월한 성능을 발휘합니다. 그러나 일부에서는 Golang의 코어가 단일 코어 작동으로 제한되어 있는지 의문을 제기했습니다. 이 기사에서는 Golang의 동시성 기능과 멀티 코어 프로세서에서의 성능을 살펴보고 구체적인 코드 예제를 통해 이 질문에 답할 것입니다. Golang은 언어 수준에서 동시 처리를 위한 심층적인 설계와 지원을 갖추고 있습니다. 고루틴을 사용합니다.

Huawei Hongmeng 시스템과 Android의 관계에 대한 연구 지속적인 기술 발전으로 스마트폰은 사람들의 삶에 없어서는 안 될 부분이 되었습니다. 세계 최고의 휴대전화 제조업체 중 하나인 화웨이는 끊임없이 혁신해 왔으며 더 나은 모바일 운영 체제와 사용자 경험을 제공하기 위해 최선을 다하고 있습니다. 최근 몇 년간 미국의 화웨이 탄압으로 화웨이는 자체 운영체제 개발에 속도를 내기 시작했고, 하모니OS(HarmonyOS)가 탄생했다. 이러한 맥락에서 사람들은 홍멍 시스템과 안드로이드의 관계에 주목하기 시작했습니다. 먼저, 우리는 이해해야 합니다.

ORM(Object-Relational Mapping)은 객체지향 프로그래밍 언어와 관계형 데이터베이스를 연결하는 기술입니다. pythonORM을 사용하면 데이터 지속성 작업이 크게 단순화되어 애플리케이션 개발 효율성과 유지 관리성이 향상됩니다. PythonORM을 사용하면 다음과 같은 장점이 있습니다. 상용구 코드 감소: ORM은 자동으로 SQL 쿼리를 생성하므로 많은 상용구 코드를 작성하지 않아도 됩니다. 데이터베이스 상호 작용 단순화: ORM은 데이터베이스와의 상호 작용을 위한 통합 인터페이스를 제공하여 데이터 작업을 단순화합니다. 보안 향상: ORM은 SQL 주입과 같은 보안 취약성을 방지할 수 있는 매개변수화된 쿼리를 사용합니다. 데이터 일관성 향상: ORM은 개체와 데이터베이스 간의 동기화를 보장하고 데이터 일관성을 유지합니다. ORM을 선택하세요

Android 시스템과 Linux 커널은 밀접하게 관련된 두 개체이며, 둘 사이의 관계는 밀접하고 복잡합니다. Android 시스템에서 Linux 커널은 Android 시스템에 대한 기본 하드웨어 드라이버 및 시스템 호출 지원을 제공하는 중요한 역할을 합니다. 이 기사에서는 Android 시스템과 Linux 커널 간의 관계, 상호 작용 및 작동 방식을 살펴보고 몇 가지 구체적인 코드 예제를 제공합니다. 안드로이드(Android)는 리눅스 커널을 기반으로 개발된 모바일 운영체제로 스마트폰, 태블릿 등 모바일 기기에 주로 사용된다. 엘
