chrome.sockets.udp

Описание

Используйте API chrome.sockets.udp для отправки и получения данных по сети с использованием UDP-подключений. Этот API заменяет функционал UDP, ранее реализованный в API «сокетов».

Манифест

Для использования этого API в манифесте необходимо объявить следующие ключи.

"sockets"

Типы

CreateInfo

Характеристики

  • socketId

    число

    Идентификатор вновь созданного сокета. Обратите внимание, что идентификаторы сокетов, созданные с помощью этого API, несовместимы с идентификаторами сокетов, созданными с помощью других API, например, устаревшего API [ socket ](../socket/) .

DnsQueryType

Хром 103+

Настройки разрешения DNS. Значение по умолчанию — any , используется текущая конфигурация ОС, которая может возвращать IPv4 или IPv6. ipv4 принудительно использует IPv4, а ipv6 принудительно использует IPv6.

Перечисление

"любой"

"ipv4"

"ipv6"

ReceiveErrorInfo

Характеристики

  • resultCode

    число

    Код результата, возвращаемый базовым вызовом recvfrom().

  • socketId

    число

    Идентификатор сокета.

ReceiveInfo

Характеристики

  • данные

    ArrayBuffer

    Содержимое пакета UDP (усеченное до текущего размера буфера).

  • remoteAddress

    нить

    Адрес хоста, с которого пришел пакет.

  • удаленныйпорт

    число

    Порт хоста, с которого пришел пакет.

  • socketId

    число

    Идентификатор сокета.

SendInfo

Характеристики

  • байтыОтправлено

    номер необязательно

    Количество отправленных байтов (если результат == 0)

  • resultCode

    число

    Код результата, возвращаемый базовым сетевым вызовом. Отрицательное значение указывает на ошибку.

SocketInfo

Характеристики

  • Размер буфера

    номер необязательно

    Размер буфера, используемого для получения данных. Если размер буфера не указан явно, значение не предоставляется.

  • локальный адрес

    строка необязательная

    Если базовый сокет привязан, содержит его локальный адрес IPv4/6.

  • локальный порт

    номер необязательно

    Если базовый сокет привязан, содержит его локальный порт.

  • имя

    строка необязательная

    Определенная приложением строка, связанная с сокетом.

  • приостановлено

    булев

    Флаг, указывающий, заблокирован ли сокет от генерации событий onReceive.

  • настойчивый

    булев

    Флаг, указывающий, остается ли сокет открытым при приостановке приложения (см. SocketProperties.persistent ).

  • socketId

    число

    Идентификатор сокета.

SocketProperties

Характеристики

  • Размер буфера

    номер необязательно

    Размер буфера, используемого для приёма данных. Если буфер слишком мал для приёма UDP-пакета, данные теряются. Значение по умолчанию — 4096.

  • имя

    строка необязательная

    Определенная приложением строка, связанная с сокетом.

  • настойчивый

    логическое необязательное

    Флаг, указывающий, остаётся ли сокет открытым при выгрузке страницы событий приложения (см. раздел Управление жизненным циклом приложения ). Значение по умолчанию — «false». После загрузки приложения все сокеты, ранее открытые с параметром persistent=true, можно получить с помощью getSockets .

Методы

bind()

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

Связывает локальный адрес и порт для сокета. Для клиентского сокета рекомендуется использовать порт 0, чтобы платформа могла выбрать свободный порт.

После успешного завершения операции bind возникают события onReceive , когда пакеты UDP поступают на указанный адрес/порт — если только сокет не приостановлен.

Параметры

  • socketId

    число

    Идентификатор сокета.

  • адрес

    нить

    Адрес локального компьютера. Поддерживаются DNS-имя, форматы IPv4 и IPv6. Используйте «0.0.0.0» для приема пакетов со всех доступных локальных сетевых интерфейсов.

  • порт

    число

    Порт локальной машины. Используйте «0» для привязки к свободному порту.

  • перезвонить

    функция

    Параметр callback выглядит так:

    (result: number) => void

    • результат

      число

      Код результата, возвращаемый базовым сетевым вызовом. Отрицательное значение указывает на ошибку.

close()

Обещать
chrome.sockets.udp.close(
  socketId: number,
  callback?: function,
)
: Promise<void>

Закрывает сокет и освобождает адрес/порт, к которому он привязан. Каждый созданный сокет должен быть закрыт после использования. Идентификатор сокета становится недействительным сразу после вызова функции. Однако сокет гарантированно закрывается только при вызове обратного вызова.

Параметры

  • socketId

    число

    Идентификатор сокета.

  • перезвонить

    функция необязательна

    Параметр callback выглядит так:

    () => void

Возврат

  • Обещание<void>

    Хром 121+

    Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.

create()

Обещать
chrome.sockets.udp.create(
  properties?: SocketProperties,
  callback?: function,
)
: Promise<CreateInfo>

Создает UDP-сокет с заданными свойствами.

Параметры

  • характеристики

    SocketProperties необязательны

    Свойства сокета (необязательно).

  • перезвонить

    функция необязательна

    Параметр callback выглядит так:

    (createInfo: CreateInfo) => void

    • createInfo

      Результат создания сокета.

Возврат

  • Обещание< CreateInfo >

    Хром 121+

    Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.

getInfo()

Обещать
chrome.sockets.udp.getInfo(
  socketId: number,
  callback?: function,
)
: Promise<SocketInfo>

Возвращает состояние указанного сокета.

Параметры

  • socketId

    число

    Идентификатор сокета.

  • перезвонить

    функция необязательна

    Параметр callback выглядит так:

    (socketInfo: SocketInfo) => void

    • socketInfo

      Объект, содержащий информацию о сокете.

Возврат

  • Обещание <SocketInfo>

    Хром 121+

    Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.

getJoinedGroups()

Обещать
chrome.sockets.udp.getJoinedGroups(
  socketId: number,
  callback?: function,
)
: Promise<string[]>

Получает адреса многоадресной группы, к которой в данный момент присоединен сокет.

Параметры

  • socketId

    число

    Идентификатор сокета.

  • перезвонить

    функция необязательна

    Параметр callback выглядит так:

    (groups: string[]) => void

    • группы

      нить[]

      Массив групп, к которым присоединен сокет.

Возврат

  • Обещание<string[]>

    Хром 121+

    Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.

getSockets()

Обещать
chrome.sockets.udp.getSockets(
  callback?: function,
)
: Promise<SocketInfo[]>

Возвращает список открытых в данный момент сокетов, принадлежащих приложению.

Параметры

  • перезвонить

    функция необязательна

    Параметр callback выглядит так:

    (socketInfos: SocketInfo[]) => void

    • socketInfos

      Массив объектов, содержащий информацию о сокетах.

Возврат

  • Обещание< SocketInfo []>

    Хром 121+

    Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.

joinGroup()

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

Присоединяется к группе многоадресной рассылки и начинает получать пакеты из этой группы. Перед вызовом этого метода сокет должен быть привязан к локальному порту.

Параметры

  • socketId

    число

    Идентификатор сокета.

  • адрес

    нить

    Адрес группы, к которой нужно присоединиться. Доменные имена не поддерживаются.

  • перезвонить

    функция

    Параметр callback выглядит так:

    (result: number) => void

    • результат

      число

      Код результата, возвращаемый базовым сетевым вызовом. Отрицательное значение указывает на ошибку.

leaveGroup()

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

Выходит из группы многоадресной рассылки, к которой ранее был присоединён с помощью joinGroup . Вызывать этот параметр необходимо только в том случае, если вы планируете использовать сокет в дальнейшем, так как ОС сделает это автоматически при закрытии сокета.

Выход из группы не позволит маршрутизатору отправлять многоадресные датаграммы на локальный хост, при условии, что никакой другой процесс на хосте не присоединен к группе.

Параметры

  • socketId

    число

    Идентификатор сокета.

  • адрес

    нить

    Адрес группы, которую нужно покинуть. Доменные имена не поддерживаются.

  • перезвонить

    функция

    Параметр callback выглядит так:

    (result: number) => void

    • результат

      число

      Код результата, возвращаемый базовым сетевым вызовом. Отрицательное значение указывает на ошибку.

send()

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

Отправляет данные через указанный сокет по указанному адресу и порту. Перед вызовом этого метода сокет должен быть привязан к локальному порту.

Параметры

  • socketId

    число

    Идентификатор сокета.

  • данные

    ArrayBuffer

    Данные для отправки.

  • адрес

    нить

    Адрес удаленной машины.

  • порт

    число

    Порт удаленной машины.

  • dnsQueryType

    DnsQueryType необязательно

    Хром 103+

    Предпочтение разрешения адреса.

  • перезвонить

    функция

    Параметр callback выглядит так:

    (sendInfo: SendInfo) => void

    • sendInfo

      Результат метода send .

setBroadcast()

Хром 44+
chrome.sockets.udp.setBroadcast(
  socketId: number,
  enabled: boolean,
  callback: function,
)
: void

Включает или выключает широковещательную передачу пакетов на этом сокете.

Параметры

  • socketId

    число

    Идентификатор сокета.

  • включено

    булев

    true — включить широковещательные пакеты, false — отключить их.

  • перезвонить

    функция

    Параметр callback выглядит так:

    (result: number) => void

    • результат

      число

      Код результата, возвращенный из базового сетевого вызова.

setMulticastLoopbackMode()

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

Устанавливает, будут ли пакеты многоадресной рассылки, отправленные с хоста в группу многоадресной рассылки, возвращаться обратно на хост.

Примечание: поведение setMulticastLoopbackMode немного различается в системах Windows и Unix. Несогласованность возникает только тогда, когда на одном узле находится несколько приложений, входящих в одну и ту же группу многоадресной рассылки, но с разными настройками режима многоадресной рассылки loopback. В Windows приложения с отключенной функцией loopback не будут ПОЛУЧАТЬ пакеты loopback; в то время как в Unix-системах приложения с отключенной функцией loopback не будут ОТПРАВЛЯТЬ пакеты loopback другим приложениям на том же узле. См. MSDN: https://learn.microsoft.com/en-us/windows/win32/winsock/ip-multicast-2

Вызов этого метода не требует разрешений на многоадресную передачу.

Параметры

  • socketId

    число

    Идентификатор сокета.

  • включено

    булев

    Укажите, следует ли включить режим замыкания на себя.

  • перезвонить

    функция

    Параметр callback выглядит так:

    (result: number) => void

    • результат

      число

      Код результата, возвращаемый базовым сетевым вызовом. Отрицательное значение указывает на ошибку.

setMulticastTimeToLive()

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

Устанавливает время жизни многоадресных пакетов, отправляемых в многоадресную группу.

Вызов этого метода не требует разрешений на многоадресную передачу.

Параметры

  • socketId

    число

    Идентификатор сокета.

  • ттл

    число

    Значение времени жизни.

  • перезвонить

    функция

    Параметр callback выглядит так:

    (result: number) => void

    • результат

      число

      Код результата, возвращаемый базовым сетевым вызовом. Отрицательное значение указывает на ошибку.

setPaused()

Обещать
chrome.sockets.udp.setPaused(
  socketId: number,
  paused: boolean,
  callback?: function,
)
: Promise<void>

Приостанавливает или возобновляет работу сокета. Приостановленный сокет блокирует отправку событий onReceive .

Параметры

  • socketId

    число

  • приостановлено

    булев

    Флаг, указывающий, следует ли приостановить или возобновить воспроизведение.

  • перезвонить

    функция необязательна

    Параметр callback выглядит так:

    () => void

Возврат

  • Обещание<void>

    Хром 121+

    Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.

update()

Обещать
chrome.sockets.udp.update(
  socketId: number,
  properties: SocketProperties,
  callback?: function,
)
: Promise<void>

Обновляет свойства сокета.

Параметры

  • socketId

    число

    Идентификатор сокета.

  • характеристики

    Свойства для обновления.

  • перезвонить

    функция необязательна

    Параметр callback выглядит так:

    () => void

Возврат

  • Обещание<void>

    Хром 121+

    Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.

События

onReceive

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

Событие возникает при получении UDP-пакета для указанного сокета.

Параметры

  • перезвонить

    функция

    Параметр callback выглядит так:

    (info: ReceiveInfo) => void

onReceiveError

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

Событие возникает при возникновении сетевой ошибки во время ожидания средой выполнения данных по адресу и порту сокета. После возникновения этого события сокет приостанавливается, и события onReceive для этого сокета больше не будут генерироваться до тех пор, пока он не будет возобновлен.

Параметры

  • перезвонить

    функция

    Параметр callback выглядит так:

    (info: ReceiveErrorInfo) => void