Qt Remote Objects Nodos
En una red QtRO, la información se transmite entre procesos a través de QRemoteObjectNodes ("nodos"). Esta funcionalidad peer-to-peer utiliza un pequeño número de paquetes distintos que pasan los datos necesarios entre nodos.
Cada proceso que participa en la red instancia un tipo basado en Nodos, como QRemoteObjectNode, QRemoteObjectHost, o QRemoteObjectRegistryHost. Los tipos de Nodos anfitriones proporcionan funcionalidad adicional. Tanto QRemoteObjectHost como QRemoteObjectRegistryHost soportan los métodos enableRemoting() y el correspondiente disableRemoting(), que son los métodos clave para exponer objetos fuente a la red. Para utilizar la funcionalidad de Registro, es necesario tener un QRemoteObjectRegistryHost en la red. Entonces, todos los demás nodos pueden pasar la URL del RegistryHost al parámetro del constructor registryAddress del Nodo, o pasar la URL al método setRegistryUrl().
Dado que QtRO es una red peer-to-peer, para acquire() una Réplica válida, el nodo de la réplica necesita estar conectado al nodo que aloja su Fuente. Un nodo anfitrión es un nodo que permite a otros nodos conectarse a él, lo que se consigue dando a los anfitriones direcciones únicas. Esta dirección se proporciona al constructor QRemoteObjectHost o se establece mediante el método setHostUrl. El nodo al que se solicita una réplica debe establecer la conexión con el nodo anfitrión, para inicializar la réplica y mantenerla actualizada.
Conexión de Nodos mediante URLs QtRO
Los Nodos anfitriones utilizan URLs personalizadas para simplificar las conexiones. Actualmente, QtRO soporta dos tipos de conexiones:
- Una conexión TCP usando el protocolo estándar TCP/IP - soporta conexiones entre dispositivos así como entre procesos en el mismo dispositivo.
- Una conexión local - soporta conexiones entre procesos en el mismo dispositivo. Este tipo de conexión puede tener menos sobrecarga, dependiendo de las características del sistema operativo subyacente.
Para las conexiones locales, debe utilizar un nombre único. Para las conexiones TCP, debe proporcionar una combinación única de dirección y número de puerto.
Actualmente, QtRO no incluye una función zeroconf. Por lo tanto, todos los procesos o dispositivos deben saber de antemano, cómo conectarse entre sí. Un QRemoteObjectRegistry puede ser utilizado para simplificar el proceso de conexión para una red con múltiples Nodos Anfitriones.
La siguiente tabla resume los tipos de conexión disponibles:
| URL | Notas |
|---|---|
| ("local:service") | Utiliza (internamente) las clases {QLocalServer}/{QLocalSocket} para comunicarse entre nodos. |
| ("tcp://192.168.1.1:9999") | Utiliza (internamente) {QTcpServer}/{QTcpSocket} clases para comunicarse entre nodos. |
| ("qnx:servicio") | Sólo para SO QNX. Utiliza un canal personalizado (con nombre) para la comunicación nativa entre nodos. |
| ("localabstract:service") | Desde 6.2. Sólo SO Linux/Android. Utiliza un espacio de nombres abstracto para sockets de dominio Unix. Esto permite que el comportamiento de QLocalSocket funcione en dispositivos no grabables. |
Los nodos tienen algunos métodos enableRemoting() que se utilizan para compartir objetos en la red. Sin embargo, si el nodo no es un nodo anfitrión, se devuelve un error.
Otros procesos o dispositivos que quieran interactuar con un objeto compartido pueden utilizar uno de los métodos node's acquire(), para instanciar una réplica.
© 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.