---
title: roNetworkDiscovery
slug: develop/es/ronetworkdiscovery
docTags: 
createdAt: 2025-03-11T07:07:18.732Z
---

Este objeto permite el descubrimiento zeroconf de dispositivos en la red local (incluidos otros reproductores BrightSign) mediante mDNS. Otros reproductores BrightSign deben ejecutar una instancia de [roNetworkAdvertisement](docId\:ps7MDdrix8L1d-qSWoxSk) para ser descubiertos mediante el objeto *roNetworkDiscovery* . 

Creación del objeto: El objeto *roNetworkDiscovery* se crea sin parámetros.

```text
CreateObject("roNetworkDiscovery") 
```

## ifNetworkDiscovery

### Search(parameters As roAssociativeArray) As Boolean

Busca reproductores BrightSign en la red local. Un reproductor solo responderá a la búsqueda si actualmente está ejecutando una instancia de *roNetworkAdvertisement*. Los resultados de la búsqueda se publicarán en el puerto de mensajes adjunto. Los parámetros de búsqueda se pasan a este método como un arreglo asociativo que contiene los siguientes valores:

- `tipo`: El tipo de servicio. Si se omite esta entrada, la búsqueda utilizará de forma predeterminada "\_http.\_tcp".
- `protocolo`: El protocolo IP. Los valores aceptados son "IPv4" y "IPv6". También puede omitir esta entrada si desea buscar reproductores que utilicen cualquiera de los dos protocolos. 

## ifMessagePort

### SetPort(port As roMessagePort)

Publica eventos en el puerto de mensajes adjunto. Consulte la sección Tipos de eventos a continuación para obtener más detalles.

## ifUserData

### SetUserData(user\_data As Object)

Establece los datos de usuario que se devolverán cuando se generen eventos.

### GetUserData() As Object

Devuelve los datos de usuario que se establecieron previamente mediante `SetUserData()`. Devolverá `Inválido` si no se ha establecido ningún dato.

## Tipos de eventos

El objeto *roNetworkDiscovery* puede publicar tres tipos de objetos de evento en el puerto de mensajes adjunto:

- *roNetworkDiscoveryResolvedEvent*: Se genera cuando un host se resuelve completamente.
- *roNetworkDiscoveryCompletedEvent*: Se genera cuando la búsqueda se completa.
- *roNetworkDiscoveryGeneralEvent*: Se genera para eventos distintos de los dos anteriores. Este evento ocurre raramente.

Los tres objetos de evento ofrecen los métodos `SetUserData()`, `GetUserData()` y `GetData()` . Use `GetData()` para recuperar un arreglo asociativo de resultados. Para el objeto *roNetworkDiscoveryResolvedEvent*, llamar a `GetData()` devolverá las siguientes entradas:

- `protocolo`: La familia de protocolos de red que se utilizó para el descubrimiento, ya sea "IPv4" o "IPv6". Tenga en cuenta que esta no es necesariamente la familia de direcciones para la dirección devuelta; es posible que las direcciones IPv6 se anuncien mediante un transporte IPv4, o viceversa.
- `host_name`: El nombre de host del reproductor
- `nombre`: El nombre del servicio
- `txt`: Un arreglo asociativo que contiene entradas de texto arbitrarias especificadas durante la creación de la instancia de *roNetworkAdvertisement* .
- `dominio`: El dominio del reproductor
- `tipo`: El tipo de servicio
- `dirección`: La dirección IPv4 o IPv6

El siguiente script busca un reproductor que ejecute una instancia de *roNetworkAdvertisement* e imprime los resultados del descubrimiento.

```text
rn = CreateObject("roNetworkDiscovery")
mp = CreateObject("roMessagePort")
rn.SetPort(mp)
params = {}
rn.Search(params)
 
complete = false
while not complete
    ev = mp.WaitMessage(10000)
    if ev = invalid then
        stop
    end if

    if type(ev) = "roNetworkDiscoveryCompletedEvent" then
        print "roNetworkDiscoveryCompletedEvent"
    end if

    if type(ev) = "roNetworkDiscoveryGeneralEvent" then
        print "roNetworkDiscoveryGeneralEvent"
    end if

    if type(ev) = "roNetworkDiscoveryResolvedEvent" then
        complete = true
        data = ev.GetData()
        print "DATA:"; data
        print "DONE"
        textdata = data[ "txt" ]
        if textdata <> invalid then
            print "TEXT: "; textdata
        endif
    end if

end while
```

