chrome.sockets.udp

Descripción

Usa la API de chrome.sockets.udp para enviar y recibir datos a través de la red con conexiones UDP. Esta API reemplaza la funcionalidad de UDP que se encontraba anteriormente en la API de "socket".

Manifiesto

Para usar esta API, se deben declarar las siguientes claves en el manifiesto.

"sockets"

Tipos

CreateInfo

Propiedades

  • socketId

    número

    Es el ID del socket recién creado. Ten en cuenta que los IDs de socket creados a partir de esta API no son compatibles con los IDs de socket creados a partir de otras APIs, como la API de [socket](../socket/) obsoleta.

DnsQueryType

Chrome 103 y versiones posteriores

Preferencias de resolución de DNS. El valor predeterminado es any y usa la configuración actual del SO, que puede devolver IPv4 o IPv6. ipv4 fuerza IPv4 y ipv6 fuerza IPv6.

Enum

"any"

"ipv4"

"ipv6"

ReceiveErrorInfo

Propiedades

  • resultCode

    número

    Es el código de resultado que se devolvió de la llamada recvfrom() subyacente.

  • socketId

    número

    Es el ID del socket.

ReceiveInfo

Propiedades

  • datos

    ArrayBuffer

    Es el contenido del paquete UDP (truncado al tamaño del búfer actual).

  • remoteAddress

    string

    Es la dirección del host del que proviene el paquete.

  • remotePort

    número

    Es el puerto del host del que proviene el paquete.

  • socketId

    número

    Es el ID del socket.

SendInfo

Propiedades

  • bytesSent

    número opcional

    Cantidad de bytes enviados (si result == 0)

  • resultCode

    número

    Es el código de resultado que se devolvió de la llamada de red subyacente. Un valor negativo indica un error.

SocketInfo

Propiedades

  • bufferSize

    número opcional

    Es el tamaño del búfer que se usa para recibir datos. Si no se especificó un tamaño de búfer de forma explícita, no se proporciona el valor.

  • localAddress

    cadena opcional

    Si el socket subyacente está vinculado, contiene su dirección IPv4/6 local.

  • localPort

    número opcional

    Si el socket subyacente está vinculado, contiene su puerto local.

  • nombre

    cadena opcional

    Es una cadena definida por la aplicación y asociada al socket.

  • detenido

    booleano

    Es una marca que indica si el socket está bloqueado para activar eventos onReceive.

  • persistentes

    booleano

    Es una marca que indica si el socket se deja abierto cuando se suspende la aplicación (consulta SocketProperties.persistent).

  • socketId

    número

    Es el identificador del socket.

SocketProperties

Propiedades

  • bufferSize

    número opcional

    Es el tamaño del búfer que se usa para recibir datos. Si el búfer es demasiado pequeño para recibir el paquete UDP, se pierden datos. El valor predeterminado es 4096.

  • nombre

    cadena opcional

    Es una cadena definida por la aplicación y asociada al socket.

  • persistentes

    booleano opcional

    Es una marca que indica si el socket permanece abierto cuando se descarga la página de eventos de la aplicación (consulta Cómo administrar el ciclo de vida de la app). El valor predeterminado es "false". Cuando se carga la aplicación, cualquier socket que se haya abierto previamente con persistent=true se puede recuperar con getSockets.

Métodos

bind()

chrome.sockets.udp.bind(
  socketId: number,
  address: string,
  port: number,
  callback: function,
)
: void

Vincula la dirección y el puerto locales para el socket. En el caso de un socket de cliente, se recomienda usar el puerto 0 para permitir que la plataforma elija un puerto libre.

Una vez que la operación bind se completa correctamente, se generan eventos onReceive cuando llegan paquetes UDP a la dirección o el puerto especificados, a menos que el socket esté en pausa.

Parámetros

  • socketId

    número

    Es el ID del socket.

  • dirección

    string

    Es la dirección de la máquina local. Se admiten los formatos de nombre de DNS, IPv4 e IPv6. Usa "0.0.0.0" para aceptar paquetes de todas las interfaces de red locales disponibles.

  • puerto

    número

    Es el puerto de la máquina local. Usa "0" para vincular a un puerto libre.

  • callback

    función

    El parámetro callback se ve de la siguiente manera:

    (result: number) => void

    • resultado

      número

      Es el código de resultado que se devolvió de la llamada de red subyacente. Un valor negativo indica un error.

close()

Promesa
chrome.sockets.udp.close(
  socketId: number,
  callback?: function,
)
: Promise<void>

Cierra el socket y libera la dirección o el puerto al que está vinculado. Cada socket creado debe cerrarse después de usarse. El ID de socket ya no es válido en cuanto se llama a la función. Sin embargo, se garantiza que el socket se cerrará solo cuando se invoque la devolución de llamada.

Parámetros

  • socketId

    número

    Es el ID del socket.

  • callback

    función opcional

    El parámetro callback se ve de la siguiente manera:

    () => void

Muestra

  • Promise<void>

    Chrome 121 y versiones posteriores

    Las promesas solo se admiten en Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.

create()

Promesa
chrome.sockets.udp.create(
  properties?: SocketProperties,
  callback?: function,
)
: Promise<CreateInfo>

Crea un socket UDP con las propiedades especificadas.

Parámetros

  • properties

    Propiedades del socket (opcional).

  • callback

    función opcional

    El parámetro callback se ve de la siguiente manera:

    (createInfo: CreateInfo) => void

    • createInfo

      Es el resultado de la creación del socket.

Muestra

  • Promise<CreateInfo>

    Chrome 121 y versiones posteriores

    Las promesas solo se admiten en Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.

getInfo()

Promesa
chrome.sockets.udp.getInfo(
  socketId: number,
  callback?: function,
)
: Promise<SocketInfo>

Recupera el estado del socket determinado.

Parámetros

  • socketId

    número

    Es el ID del socket.

  • callback

    función opcional

    El parámetro callback se ve de la siguiente manera:

    (socketInfo: SocketInfo) => void

    • socketInfo

      Objeto que contiene la información del socket.

Muestra

  • Promise<SocketInfo>

    Chrome 121 y versiones posteriores

    Las promesas solo se admiten en Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.

getJoinedGroups()

Promesa
chrome.sockets.udp.getJoinedGroups(
  socketId: number,
  callback?: function,
)
: Promise<string[]>

Obtiene las direcciones de grupo de multidifusión a las que se unió el socket actualmente.

Parámetros

  • socketId

    número

    Es el ID del socket.

  • callback

    función opcional

    El parámetro callback se ve de la siguiente manera:

    (groups: string[]) => void

    • grupos

      string[]

      Es un array de los grupos a los que se unió el socket.

Muestra

  • Promise<string[]>

    Chrome 121 y versiones posteriores

    Las promesas solo se admiten en Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.

getSockets()

Promesa
chrome.sockets.udp.getSockets(
  callback?: function,
)
: Promise<SocketInfo[]>

Recupera la lista de los sockets abiertos actualmente que son propiedad de la aplicación.

Parámetros

  • callback

    función opcional

    El parámetro callback se ve de la siguiente manera:

    (socketInfos: SocketInfo[]) => void

    • socketInfos

      Es un array de objetos que contiene información de los sockets.

Muestra

  • Promise<SocketInfo[]>

    Chrome 121 y versiones posteriores

    Las promesas solo se admiten en Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.

joinGroup()

chrome.sockets.udp.joinGroup(
  socketId: number,
  address: string,
  callback: function,
)
: void

Se une al grupo de multidifusión y comienza a recibir paquetes de ese grupo. El socket debe estar vinculado a un puerto local antes de llamar a este método.

Parámetros

  • socketId

    número

    Es el ID del socket.

  • dirección

    string

    Es la dirección del grupo al que se unirá. No se admiten nombres de dominios.

  • callback

    función

    El parámetro callback se ve de la siguiente manera:

    (result: number) => void

    • resultado

      número

      Es el código de resultado que se devolvió de la llamada de red subyacente. Un valor negativo indica un error.

leaveGroup()

chrome.sockets.udp.leaveGroup(
  socketId: number,
  address: string,
  callback: function,
)
: void

Abandona el grupo multicast al que se unió anteriormente con joinGroup. Solo es necesario llamar a este método si planeas seguir usando el socket después, ya que el SO lo hará automáticamente cuando se cierre el socket.

Si abandonas el grupo, se evitará que el router envíe datagramas de multidifusión al host local, suponiendo que ningún otro proceso en el host siga unido al grupo.

Parámetros

  • socketId

    número

    Es el ID del socket.

  • dirección

    string

    Es la dirección del grupo que se abandonará. No se admiten nombres de dominios.

  • callback

    función

    El parámetro callback se ve de la siguiente manera:

    (result: number) => void

    • resultado

      número

      Es el código de resultado que se devolvió de la llamada de red subyacente. Un valor negativo indica un error.

send()

chrome.sockets.udp.send(
  socketId: number,
  data: ArrayBuffer,
  address: string,
  port: number,
  dnsQueryType?: DnsQueryType,
  callback: function,
)
: void

Envía datos en el socket determinado a la dirección y el puerto determinados. El socket debe estar vinculado a un puerto local antes de llamar a este método.

Parámetros

  • socketId

    número

    Es el ID del socket.

  • datos

    ArrayBuffer

    Son los datos que se enviarán.

  • dirección

    string

    Es la dirección de la máquina remota.

  • puerto

    número

    Es el puerto de la máquina remota.

  • dnsQueryType

    DnsQueryType opcional

    Chrome 103 y versiones posteriores

    Es la preferencia de resolución de direcciones.

  • callback

    función

    El parámetro callback se ve de la siguiente manera:

    (sendInfo: SendInfo) => void

    • sendInfo

      Es el resultado del método send.

setBroadcast()

Chrome 44 y versiones posteriores
chrome.sockets.udp.setBroadcast(
  socketId: number,
  enabled: boolean,
  callback: function,
)
: void

Habilita o inhabilita los paquetes de transmisión en este socket.

Parámetros

  • socketId

    número

    Es el ID del socket.

  • habilitado

    booleano

    true para habilitar los paquetes de transmisión y false para inhabilitarlos.

  • callback

    función

    El parámetro callback se ve de la siguiente manera:

    (result: number) => void

    • resultado

      número

      Es el código de resultado que se devolvió de la llamada de red subyacente.

setMulticastLoopbackMode()

chrome.sockets.udp.setMulticastLoopbackMode(
  socketId: number,
  enabled: boolean,
  callback: function,
)
: void

Establece si los paquetes de multidifusión enviados desde el host al grupo de multidifusión se devolverán al host.

Nota: El comportamiento de setMulticastLoopbackMode es ligeramente diferente entre los sistemas Windows y los de tipo Unix. La incoherencia solo se produce cuando hay más de una aplicación en el mismo host unida al mismo grupo de multidifusión y con diferentes parámetros de configuración en el modo de bucle invertido de multidifusión. En Windows, las aplicaciones con bucle invertido desactivado no RECIBIRÁN los paquetes de bucle invertido, mientras que en los sistemas similares a Unix, las aplicaciones con bucle invertido desactivado no ENVIARÁN los paquetes de bucle invertido a otras aplicaciones en el mismo host. Consulta MSDN: https://learn.microsoft.com/en-us/windows/win32/winsock/ip-multicast-2

Llamar a este método no requiere permisos de multidifusión.

Parámetros

  • socketId

    número

    Es el ID del socket.

  • habilitado

    booleano

    Indica si se debe habilitar el modo de bucle invertido.

  • callback

    función

    El parámetro callback se ve de la siguiente manera:

    (result: number) => void

    • resultado

      número

      Es el código de resultado que se devolvió de la llamada de red subyacente. Un valor negativo indica un error.

setMulticastTimeToLive()

chrome.sockets.udp.setMulticastTimeToLive(
  socketId: number,
  ttl: number,
  callback: function,
)
: void

Establece el tiempo de vida de los paquetes de multidifusión enviados al grupo de multidifusión.

Llamar a este método no requiere permisos de multidifusión.

Parámetros

  • socketId

    número

    Es el ID del socket.

  • ttl

    número

    Es el valor de tiempo de actividad.

  • callback

    función

    El parámetro callback se ve de la siguiente manera:

    (result: number) => void

    • resultado

      número

      Es el código de resultado que se devolvió de la llamada de red subyacente. Un valor negativo indica un error.

setPaused()

Promesa
chrome.sockets.udp.setPaused(
  socketId: number,
  paused: boolean,
  callback?: function,
)
: Promise<void>

Pausa o reanuda un socket. Un socket en pausa no puede activar eventos onReceive.

Parámetros

  • socketId

    número

  • detenido

    booleano

    Es una marca que indica si se debe pausar o reanudar.

  • callback

    función opcional

    El parámetro callback se ve de la siguiente manera:

    () => void

Muestra

  • Promise<void>

    Chrome 121 y versiones posteriores

    Las promesas solo se admiten en Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.

update()

Promesa
chrome.sockets.udp.update(
  socketId: number,
  properties: SocketProperties,
  callback?: function,
)
: Promise<void>

Actualiza las propiedades del socket.

Parámetros

  • socketId

    número

    Es el ID del socket.

  • properties

    Son las propiedades que se actualizarán.

  • callback

    función opcional

    El parámetro callback se ve de la siguiente manera:

    () => void

Muestra

  • Promise<void>

    Chrome 121 y versiones posteriores

    Las promesas solo se admiten en Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.

Eventos

onReceive

chrome.sockets.udp.onReceive.addListener(
  callback: function,
)

Evento que se genera cuando se recibe un paquete UDP para el socket determinado.

Parámetros

  • callback

    función

    El parámetro callback se ve de la siguiente manera:

    (info: ReceiveInfo) => void

onReceiveError

chrome.sockets.udp.onReceiveError.addListener(
  callback: function,
)

Evento que se genera cuando se produce un error de red mientras el tiempo de ejecución espera datos en la dirección y el puerto del socket. Una vez que se genera este evento, el socket se pausa y no se generarán más eventos onReceive para este socket hasta que se reanude.

Parámetros