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

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Rédacteur en chef du Machine Power Report : Wu Xin La version domestique de l'équipe robot humanoïde + grand modèle a accompli pour la première fois la tâche d'exploitation de matériaux flexibles complexes tels que le pliage de vêtements. Avec le dévoilement de Figure01, qui intègre le grand modèle multimodal d'OpenAI, les progrès connexes des pairs nationaux ont attiré l'attention. Hier encore, UBTECH, le « stock numéro un de robots humanoïdes » en Chine, a publié la première démo du robot humanoïde WalkerS, profondément intégré au grand modèle de Baidu Wenxin, présentant de nouvelles fonctionnalités intéressantes. Maintenant, WalkerS, bénéficiant des capacités de grands modèles de Baidu Wenxin, ressemble à ceci. Comme la figure 01, WalkerS ne se déplace pas, mais se tient derrière un bureau pour accomplir une série de tâches. Il peut suivre les commandes humaines et plier les vêtements

Les frameworks de mappage objet-relationnel (ORM) jouent un rôle essentiel dans le développement de Python, ils simplifient l'accès et la gestion des données en créant un pont entre les bases de données objet et relationnelles. Afin d'évaluer les performances de différents frameworks ORM, cet article comparera les frameworks populaires suivants : sqlAlchemyPeeweeDjangoORMPonyORMTortoiseORM Méthode de test Le benchmark utilise une base de données SQLite contenant 1 million d'enregistrements. Le test a effectué les opérations suivantes sur la base de données : Insérer : Insérer 10 000 nouveaux enregistrements dans la table Lire : Lire tous les enregistrements de la table Mettre à jour : Mettre à jour un seul champ pour tous les enregistrements de la table Supprimer : Supprimer tous les enregistrements de la table Chaque opération

Le mappage objet-relationnel (ORM) est une technologie de programmation qui permet aux développeurs d'utiliser des langages de programmation objet pour manipuler des bases de données sans écrire directement de requêtes SQL. Les outils ORM en python (tels que SQLAlchemy, Peewee et DjangoORM) simplifient l'interaction avec les bases de données pour les projets Big Data. Avantages Simplicité du code : ORM élimine le besoin d'écrire de longues requêtes SQL, ce qui améliore la simplicité et la lisibilité du code. Abstraction des données : ORM fournit une couche d'abstraction qui isole le code de l'application des détails d'implémentation de la base de données, améliorant ainsi la flexibilité. Optimisation des performances : les ORM utilisent souvent la mise en cache et les opérations par lots pour optimiser les requêtes de base de données, améliorant ainsi les performances. Portabilité : ORM permet aux développeurs de

Pour analyser en profondeur la signification du protocole pip, des exemples de code spécifiques sont nécessaires Introduction : Dans le monde Python, pip (c'est-à-dire pipinstall) est notre moyen préféré pour installer et gérer des bibliothèques tierces. Il s'agit d'un outil de gestion de packages Python. Il est largement utilisé dans le processus de développement en raison de sa simplicité, de son efficacité, de sa facilité d'utilisation et de sa commodité. Cet article analysera en profondeur la signification du protocole pip, démontrera le rôle important et l'utilisation de pip à travers des exemples de code spécifiques et aidera les lecteurs à mieux comprendre et utiliser pip. 1. protocole pip

« Le cœur de Golang est-il limité au fonctionnement monocœur ? 》Golang, en tant que langage de programmation moderne, offre d'excellentes performances en termes de traitement et de performances simultanés. Cependant, certains se demandent si le cœur de Golang se limite à un fonctionnement monocœur. Dans cet article, nous explorerons les fonctionnalités de concurrence de Golang et ses performances sur les processeurs multicœurs, et répondrons à cette question à travers des exemples de code concrets. Golang a une conception approfondie et une prise en charge du traitement simultané au niveau du langage. Il utilise le goroutin

Recherche sur la relation entre le système Huawei Hongmeng et Android Avec le développement continu de la technologie, les smartphones sont devenus un élément indispensable de la vie des gens. En tant que l'un des principaux fabricants de téléphones mobiles au monde, Huawei innove constamment et s'engage à fournir de meilleurs systèmes d'exploitation mobiles et de meilleures expériences utilisateur. Ces dernières années, avec la suppression de Huawei par les États-Unis, Huawei a commencé à accélérer le développement de son propre système d'exploitation, et HarmonyOS a vu le jour. Dans ce contexte, les gens ont commencé à prêter attention à la relation entre le système Hongmeng et Android. Premièrement, nous devons comprendre

Le mappage objet-relationnel (ORM) est une technologie qui permet de construire un pont entre les langages de programmation orientés objet et les bases de données relationnelles. L'utilisation de pythonORM peut simplifier considérablement les opérations de persistance des données, améliorant ainsi l'efficacité et la maintenabilité du développement d'applications. Avantages L'utilisation de PythonORM présente les avantages suivants : Réduire le code passe-partout : ORM génère automatiquement des requêtes SQL, évitant ainsi d'écrire beaucoup de code passe-partout. Simplifiez l'interaction avec la base de données : ORM fournit une interface unifiée pour interagir avec la base de données, simplifiant ainsi les opérations sur les données. Améliorer la sécurité : ORM utilise des requêtes paramétrées, qui peuvent empêcher les vulnérabilités de sécurité telles que l'injection SQL. Promouvoir la cohérence des données : ORM assure la synchronisation entre les objets et les bases de données et maintient la cohérence des données. Choisissez ORM pour avoir

Le système Android et le noyau Linux sont deux entités étroitement liées, et la relation entre eux est étroite et complexe. Dans le système Android, le noyau Linux joue un rôle important, fournissant les pilotes matériels sous-jacents et la prise en charge des appels système pour le système Android. Cet article explorera la relation entre le système Android et le noyau Linux, la manière dont ils interagissent et fonctionnent ensemble, et fournira quelques exemples de code spécifiques. Android est un système d'exploitation mobile développé sur la base du noyau Linux et est principalement utilisé pour les appareils mobiles tels que les smartphones et les tablettes. L
