Sur cette page

Qt Remote Objects Nœuds

Dans un réseau QtRO, les informations sont transmises entre les processus par l'intermédiaire de QRemoteObjectNodes ("nœuds"). Cette fonctionnalité pair-à-pair utilise un petit nombre de paquets distincts qui transmettent les données nécessaires entre les nœuds.

Chaque processus qui participe au réseau instancie un type de nœud, tel que QRemoteObjectNode, QRemoteObjectHost ou QRemoteObjectRegistryHost. Les types d'hôtes des nœuds offrent des fonctionnalités supplémentaires. QRemoteObjectHost et QRemoteObjectRegistryHost prennent en charge les méthodes enableRemoting() et disableRemoting() correspondantes, qui sont les méthodes clés pour exposer les objets sources au réseau. Pour utiliser la fonctionnalité du registre, vous devez avoir un QRemoteObjectRegistryHost sur le réseau. Ensuite, tous les autres nœuds peuvent transmettre l'URL du RegistryHost au paramètre du constructeur du nœud registryAddress, ou transmettre l'URL à la méthode setRegistryUrl().

QtRO étant un réseau pair-à-pair, pour acquire() une réplique valide, le nœud de la réplique doit être connecté au nœud qui héberge sa source. Un nœud hôte est un nœud qui permet à d'autres nœuds de s'y connecter, ce qui est réalisé en donnant aux hôtes des adresses uniques. Cette adresse est fournie au constructeur de QRemoteObjectHost ou définie par la méthode setHostUrl. Le nœud auquel une réplique est demandée doit établir la connexion avec le nœud hôte, afin d'initialiser la réplique et de la maintenir à jour.

Connexion des nœuds à l'aide d'URL QtRO

Les nœuds hôtes utilisent des URL personnalisées pour simplifier les connexions. Actuellement, le QtRO prend en charge deux types de connexions :

  1. Une connexion TCP utilisant le protocole TCP/IP standard - prend en charge les connexions entre les périphériques ainsi qu'entre les processus sur le même périphérique.
  2. Une connexion locale - prend en charge les connexions entre processus sur le même périphérique. Ce type de connexion peut avoir moins de surcharge, en fonction des caractéristiques du système d'exploitation sous-jacent.

Pour les connexions locales, vous devez utiliser un nom unique. Pour les connexions TCP, vous devez fournir une combinaison unique d'adresse et de numéro de port.

Actuellement, QtRO n'inclut pas de fonction zeroconf. Par conséquent, tous les processus ou périphériques doivent savoir à l'avance comment se connecter les uns aux autres. Un site QRemoteObjectRegistry peut être utilisé pour simplifier le processus de connexion pour un réseau avec plusieurs nœuds hôtes.

Le tableau ci-dessous résume les types de connexion disponibles :

URLNotes
("local:service")Utilise (en interne) les classes {QLocalServer}/{QLocalSocket} pour communiquer entre les nœuds.
("tcp://192.168.1.1:9999")Utilise (en interne) les classes {QTcpServer}/{QTcpSocket} pour communiquer entre les noeuds.
("qnx:service")QNX OS uniquement. Utilise un canal personnalisé (nommé) pour la communication native entre les nœuds.
("localabstract:service")Depuis la version 6.2. OS Linux/Android uniquement. Utilise un espace de noms abstrait pour les sockets de domaine Unix. Cela permet à QLocalSocket de fonctionner sur des périphériques non inscriptibles.

Les nœuds ont quelques méthodes enableRemoting() qui sont utilisées pour partager des objets sur le réseau. Toutefois, si le nœud n'est pas un nœud hôte, une erreur est renvoyée.

Les autres processus ou périphériques qui souhaitent interagir avec un objet partagé peuvent utiliser l'une des méthodes node's acquire() pour instancier une réplique.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.