Описание
Используйте 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
- socketInfos
SocketInfo []
Массив объектов, содержащий информацию о сокетах.
Возврат
Обещание< 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()
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
- информация