Описание
 Используйте API chrome.sockets.udp для отправки и получения данных по сети с использованием UDP-подключений. Этот API заменяет функционал UDP, ранее реализованный в API «сокетов».
Манифест
Типы
CreateInfo
Характеристики
- socketIdчисло Идентификатор вновь созданного сокета. Обратите внимание, что идентификаторы сокетов, созданные с помощью этого API, несовместимы с идентификаторами сокетов, созданными с помощью других API, например, устаревшего API [socket](../socket/).
DnsQueryType
 Настройки разрешения 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 - socketInfosSocketInfo [] Массив объектов, содержащий информацию о сокетах. 
 
Возврат
- Обещание< 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 Данные для отправки. 
- адреснить Адрес удаленной машины. 
- портчисло Порт удаленной машины. 
- dnsQueryTypeDnsQueryType необязательно Хром 103+Предпочтение разрешения адреса. 
- перезвонитьфункция Параметр callbackвыглядит так:(sendInfo: SendInfo) => void - sendInfoРезультат метода send.
 
setBroadcast()
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 - информация