Heim php教程 php手册 Libjingle和各协议的关系

Libjingle和各协议的关系

Jun 13, 2016 am 10:54 AM
the xmpp eins 关系 协议 核心 von 相关 简介

 

一、相关协议简介

·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协议)

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Nach 2 Monaten kann der humanoide Roboter Walker S Kleidung falten Nach 2 Monaten kann der humanoide Roboter Walker S Kleidung falten Apr 03, 2024 am 08:01 AM

Herausgeber des Machine Power Report: Wu Xin Die heimische Version des humanoiden Roboters + eines großen Modellteams hat zum ersten Mal die Betriebsaufgabe komplexer flexibler Materialien wie das Falten von Kleidung abgeschlossen. Mit der Enthüllung von Figure01, das das multimodale große Modell von OpenAI integriert, haben die damit verbundenen Fortschritte inländischer Kollegen Aufmerksamkeit erregt. Erst gestern veröffentlichte UBTECH, Chinas „größter Bestand an humanoiden Robotern“, die erste Demo des humanoiden Roboters WalkerS, der tief in das große Modell von Baidu Wenxin integriert ist und einige interessante neue Funktionen aufweist. Jetzt sieht WalkerS, gesegnet mit Baidu Wenxins großen Modellfähigkeiten, so aus. Wie Figure01 bewegt sich WalkerS nicht umher, sondern steht hinter einem Schreibtisch, um eine Reihe von Aufgaben zu erledigen. Es kann menschlichen Befehlen folgen und Kleidung falten

Mar 18, 2024 am 09:10 AM

Object-Relational Mapping (ORM)-Frameworks spielen eine wichtige Rolle in der Python-Entwicklung. Sie vereinfachen den Datenzugriff und die Datenverwaltung, indem sie eine Brücke zwischen Objekt- und relationalen Datenbanken schlagen. Um die Leistung verschiedener ORM-Frameworks zu bewerten, wird in diesem Artikel ein Vergleich mit den folgenden gängigen Frameworks durchgeführt: sqlAlchemyPeeweeDjangoORMPonyORMTortoiseORM Testmethode Der Benchmark verwendet eine SQLite-Datenbank mit 1 Million Datensätzen. Der Test führte die folgenden Vorgänge in der Datenbank durch: Einfügen: 10.000 neue Datensätze in die Tabelle einfügen. Lesen: Alle Datensätze in der Tabelle lesen. Aktualisieren: Ein einzelnes Feld für alle Datensätze in der Tabelle aktualisieren. Löschen: Alle Datensätze in der Tabelle löschen. Jeder Vorgang

Mar 18, 2024 am 09:19 AM

Object-Relational Mapping (ORM) ist eine Programmiertechnologie, die es Entwicklern ermöglicht, Objektprogrammiersprachen zum Bearbeiten von Datenbanken zu verwenden, ohne SQL-Abfragen direkt schreiben zu müssen. ORM-Tools in Python (wie SQLAlchemy, Peewee und DjangoORM) vereinfachen die Datenbankinteraktion für Big-Data-Projekte. Vorteile Einfachheit des Codes: ORM macht das Schreiben langwieriger SQL-Abfragen überflüssig, was die Einfachheit und Lesbarkeit des Codes verbessert. Datenabstraktion: ORM bietet eine Abstraktionsschicht, die Anwendungscode von Datenbankimplementierungsdetails isoliert und so die Flexibilität verbessert. Leistungsoptimierung: ORMs nutzen häufig Caching- und Batch-Vorgänge, um Datenbankabfragen zu optimieren und dadurch die Leistung zu verbessern. Portabilität: ORM ermöglicht Entwicklern

Prägnant und leicht verständlich: Eingehende Analyse der Bedeutung des Pip-Protokolls Prägnant und leicht verständlich: Eingehende Analyse der Bedeutung des Pip-Protokolls Feb 02, 2024 pm 01:10 PM

Um die Bedeutung des Pip-Protokolls gründlich zu analysieren, sind spezifische Codebeispiele erforderlich. Einführung: In der Python-Welt ist Pip (d. h. pipinstall) unsere bevorzugte Methode zur Installation und Verwaltung von Bibliotheken von Drittanbietern. Es handelt sich um ein Python-Paketverwaltungstool, das aufgrund seiner Einfachheit, Effizienz, Benutzerfreundlichkeit und Bequemlichkeit häufig im Entwicklungsprozess eingesetzt wird. In diesem Artikel wird die Bedeutung des Pip-Protokolls eingehend analysiert, die wichtige Rolle und Verwendung von Pip anhand spezifischer Codebeispiele demonstriert und den Lesern dabei geholfen, Pip besser zu verstehen und zu verwenden. 1. Pip-Protokoll

Ist Golangs Kern auf den Single-Core-Betrieb beschränkt? Ist Golangs Kern auf den Single-Core-Betrieb beschränkt? Feb 29, 2024 pm 06:39 PM

„Ist der Kern von Golang auf den Single-Core-Betrieb beschränkt? „Golang bietet als moderne Programmiersprache eine hervorragende Leistung bei der gleichzeitigen Verarbeitung und Leistung. Einige haben jedoch die Frage gestellt, ob der Kern von Golang auf den Single-Core-Betrieb beschränkt ist. In diesem Artikel werden wir die Parallelitätsfunktionen von Golang und seine Leistung auf Multi-Core-Prozessoren untersuchen und diese Frage anhand konkreter Codebeispiele beantworten. Golang verfügt über umfassendes Design und Unterstützung für die gleichzeitige Verarbeitung auf Sprachebene. Es verwendet Goroutine

Forschung zur Beziehung zwischen dem Huawei Hongmeng-System und Android Forschung zur Beziehung zwischen dem Huawei Hongmeng-System und Android Mar 23, 2024 am 11:54 AM

Forschung zur Beziehung zwischen Huawei Hongmeng-System und Android Mit der kontinuierlichen Weiterentwicklung der Technologie sind Smartphones zu einem unverzichtbaren Bestandteil des Lebens der Menschen geworden. Als einer der weltweit führenden Mobiltelefonhersteller arbeitet Huawei ständig an Innovationen und ist bestrebt, bessere mobile Betriebssysteme und Benutzererlebnisse bereitzustellen. In den letzten Jahren begann Huawei mit der Unterdrückung von Huawei durch die USA, die Entwicklung seines eigenen Betriebssystems zu beschleunigen, und HarmonyOS entstand. In diesem Zusammenhang haben die Menschen begonnen, der Beziehung zwischen dem Hongmeng-System und Android Aufmerksamkeit zu schenken. Zuerst müssen wir verstehen

Mar 18, 2024 am 09:25 AM

Object-Relational Mapping (ORM) ist eine Technologie, die es ermöglicht, eine Brücke zwischen objektorientierten Programmiersprachen und relationalen Datenbanken zu schlagen. Die Verwendung von PythonORM kann Datenpersistenzvorgänge erheblich vereinfachen und dadurch die Effizienz und Wartbarkeit der Anwendungsentwicklung verbessern. Vorteile Die Verwendung von PythonORM bietet die folgenden Vorteile: Reduzierung des Boilerplate-Codes: ORM generiert automatisch SQL-Abfragen und vermeidet so das Schreiben einer großen Menge Boilerplate-Code. Vereinfachen Sie die Datenbankinteraktion: ORM bietet eine einheitliche Schnittstelle für die Interaktion mit der Datenbank und vereinfacht so Datenoperationen. Sicherheit verbessern: ORM verwendet parametrisierte Abfragen, die Sicherheitslücken wie SQL-Injection verhindern können. Datenkonsistenz fördern: ORM gewährleistet die Synchronisierung zwischen Objekten und Datenbanken und sorgt für die Datenkonsistenz. Wählen Sie ORM aus

Entdecken Sie die Beziehung zwischen dem Android-System und dem Linux-Kernel Entdecken Sie die Beziehung zwischen dem Android-System und dem Linux-Kernel Mar 14, 2024 pm 12:48 PM

Das Android-System und der Linux-Kernel sind zwei eng verwandte Einheiten, und die Beziehung zwischen ihnen ist eng und komplex. Im Android-System spielt der Linux-Kernel eine wichtige Rolle, da er zugrunde liegende Hardwaretreiber und Systemaufrufunterstützung für das Android-System bereitstellt. In diesem Artikel wird die Beziehung zwischen dem Android-System und dem Linux-Kernel untersucht, wie sie interagieren und zusammenarbeiten, und einige spezifische Codebeispiele bereitstellen. Android ist ein mobiles Betriebssystem, das auf Basis des Linux-Kernels entwickelt wurde und hauptsächlich für mobile Geräte wie Smartphones und Tablets verwendet wird. L

See all articles