chrome.sockets.udp

Описание

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

Манифест

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

"sockets"

Типы

CreateInfo

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

  • идентификатор сокета

    число

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

DnsQueryType

Хром 103+

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

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

"любой"

"ipv4"

"ipv6"

ReceiveErrorInfo

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

  • код результата

    число

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

  • идентификатор сокета

    число

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

ReceiveInfo

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

  • данные

    МассивБуфер

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

  • удаленныйадрес

    нить

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

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

    число

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

  • идентификатор сокета

    число

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

SendInfo

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

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

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

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

  • код результата

    число

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

SocketInfo

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

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

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

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

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

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

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

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

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

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

  • имя

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

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

  • остановился

    логическое значение

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

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

    логическое значение

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

  • идентификатор сокета

    число

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

SocketProperties

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

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

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

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

  • имя

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

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

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

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

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

Методы

bind()

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

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

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

Параметры

  • идентификатор сокета

    число

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

  • адрес

    нить

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

  • порт

    число

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

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

    функция

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

    (result: number) => void

    • результат

      число

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

close()

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

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

Параметры

  • идентификатор сокета

    число

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

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

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

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

    () => void

Возврат

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

    Хром 121+

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

create()

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

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

Параметры

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

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

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

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

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

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

    (createInfo: CreateInfo) => void

Возврат

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

    Хром 121+

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

getInfo()

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

Получает состояние данного сокета.

Параметры

  • идентификатор сокета

    число

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

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

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

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

    (socketInfo: SocketInfo) => void

Возврат

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

    Хром 121+

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

getJoinedGroups()

Обещать
chrome.sockets.udp.getJoinedGroups(
  socketId: number,
  callback?: function,
)

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

Параметры

  • идентификатор сокета

    число

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

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

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

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

    (groups: string[]) => void

    • группы

      нить[]

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

Возврат

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

    Хром 121+

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

getSockets()

Обещать
chrome.sockets.udp.getSockets(
  callback?: function,
)

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

Параметры

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

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

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

    (socketInfos: SocketInfo[]) => void

Возврат

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

    Хром 121+

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

joinGroup()

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

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

Параметры

  • идентификатор сокета

    число

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

  • адрес

    нить

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

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

    функция

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

    (result: number) => void

    • результат

      число

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

leaveGroup()

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

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

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

Параметры

  • идентификатор сокета

    число

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

  • адрес

    нить

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

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

    функция

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

    (result: number) => void

    • результат

      число

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

send()

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

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

Параметры

  • идентификатор сокета

    число

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

  • данные

    МассивБуфер

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

  • адрес

    нить

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

  • порт

    число

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

  • dnsQueryType

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

    Хром 103+

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

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

    функция

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

    (sendInfo: SendInfo) => void

setBroadcast()

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

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

Параметры

  • идентификатор сокета

    число

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

  • включено

    логическое значение

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

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

    функция

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

    (result: number) => void

    • результат

      число

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

setMulticastLoopbackMode()

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

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

Примечание: поведение setMulticastLoopbackMode немного отличается в Windows и Unix-подобных системах. Несогласованность возникает только тогда, когда на одном хосте имеется более одного приложения, присоединенного к одной и той же группе многоадресной рассылки, но с разными настройками режима многоадресной обратной связи. В Windows приложения с отключенной шлейфом не будут ПОЛУЧАТЬ пакеты шлейфа; в то время как в Unix-подобных системах приложения с отключенной шлейфом не будут ОТПРАВЛЯТЬ пакеты шлейфа другим приложениям на том же хосте. См. MSDN: http://goo.gl/6vqbj.

Для вызова этого метода не требуются разрешения на многоадресную рассылку.

Параметры

  • идентификатор сокета

    число

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

  • включено

    логическое значение

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

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

    функция

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

    (result: number) => void

    • результат

      число

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

setMulticastTimeToLive()

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

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

Для вызова этого метода не требуются разрешения на многоадресную рассылку.

Параметры

  • идентификатор сокета

    число

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

  • ТТЛ

    число

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

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

    функция

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

    (result: number) => void

    • результат

      число

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

setPaused()

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

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

Параметры

  • идентификатор сокета

    число

  • остановился

    логическое значение

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

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

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

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

    () => void

Возврат

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

    Хром 121+

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

update()

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

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

Параметры

  • идентификатор сокета

    число

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

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

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

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

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

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

    () => void

Возврат

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

    Хром 121+

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

События

onReceive

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

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

Параметры

onReceiveError

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

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

Параметры