Описание
Используйте API chrome.socket
для отправки и получения данных по сети с использованием TCP- и UDP-подключений. Примечание: начиная с Chrome 33, этот API устарел в пользу API sockets.udp
, sockets.tcp
и sockets.tcpServer
.
Разрешения
socket
Типы
AcceptInfo
Характеристики
- resultCode
число
- socketId
номер необязательный
Идентификатор принятого сокета.
CreateInfo
Характеристики
- socketId
число
Идентификатор вновь созданного сокета.
CreateOptions
NetworkInterface
Характеристики
- адрес
нить
Доступный адрес IPv4/6.
- имя
нить
Базовое имя адаптера. В *nix это обычно «eth0», «lo» и т. д.
- префиксДлина
число
Длина префикса
ReadInfo
Характеристики
- данные
ArrayBuffer
- resultCode
число
Код результата, возвращаемый базовым вызовом read().
RecvFromInfo
Характеристики
- адрес
нить
Адрес удаленной машины.
- данные
ArrayBuffer
- порт
число
- resultCode
число
Код результата, возвращаемый базовым вызовом recvfrom().
SecureOptions
Характеристики
- tlsVersion
TLSVersionConstraints (необязательно)
SocketInfo
Характеристики
- подключен
булев
Подключен ли базовый сокет.
Для
tcp
-сокетов это правило сохранится даже после отключения удалённого партнёра. Чтение или запись в сокет может привести к ошибке, указывающей на необходимость отключения сокета с помощьюdisconnect()
.Для сокетов
udp
это просто показывает, был ли указан удаленный адрес по умолчанию для чтения и записи пакетов. - локальный адрес
строка необязательная
Если базовый сокет привязан или подключен, содержит его локальный адрес IPv4/6.
- локальный порт
номер необязательный
Если базовый сокет привязан или подключен, содержит его локальный порт.
- peerAddress
строка необязательная
Если базовый сокет подключен, содержит IPv4/6-адрес однорангового узла.
- peerPort
номер необязательный
Если базовый сокет подключен, содержит порт подключенного однорангового узла.
- socketType
Тип переданного сокета. Это может быть
tcp
илиudp
.
SocketType
Перечисление
"tcp" "udp"
TLSVersionConstraints
Характеристики
- макс
строка необязательная
- мин
строка необязательная
Минимально и максимально допустимые версии TLS. Поддерживаемые значения:
tls1.2
илиtls1.3
.Значения
tls1
иtls1.1
больше не поддерживаются. Еслиmin
равен одному из этих значений, он будет автоматически ограничен значениемtls1.2
. Еслиmax
равен одному из этих значений или любому другому нераспознанному значению, он будет автоматически проигнорирован.
WriteInfo
Характеристики
- байтыНаписано
число
Количество отправленных байтов или отрицательный код ошибки.
Методы
accept()
chrome.socket.accept(
socketId: number,
callback: function,
): void
Этот метод применим только к TCP-сокетам. Регистрирует функцию обратного вызова, которая будет вызвана при принятии соединения на данном сокете сервера. Функция Listen должна быть вызвана первой. Если уже есть активный обратный вызов Accept, этот обратный вызов будет вызван немедленно с ошибкой в качестве resultCode.
Параметры
- socketId
число
SocketId.
- перезвонить
функция
Параметр
callback
выглядит так:(acceptInfo: AcceptInfo) => void
- acceptInfo
bind()
chrome.socket.bind(
socketId: number,
address: string,
port: number,
callback: function,
): void
Привязывает локальный адрес к сокету. В настоящее время TCP-сокет не поддерживается.
Параметры
- socketId
число
SocketId.
- адрес
нить
Адрес локальной машины.
- порт
число
Порт локальной машины.
- перезвонить
функция
Параметр
callback
выглядит так:(result: number) => void
- результат
число
connect()
chrome.socket.connect(
socketId: number,
hostname: string,
port: number,
callback: function,
): void
Подключает сокет к удалённой машине (для tcp
-сокета). Для udp
-сокета это устанавливает адрес по умолчанию, на который отправляются и с которого считываются пакеты для вызовов read()
и write()
.
Параметры
- socketId
число
SocketId.
- имя хоста
нить
Имя хоста или IP-адрес удаленной машины.
- порт
число
Порт удаленной машины.
- перезвонить
функция
Параметр
callback
выглядит так:(result: number) => void
- результат
число
create()
chrome.socket.create(
type: SocketType,
options?: CreateOptions,
callback?: function,
): Promise<CreateInfo>
Создает сокет указанного типа, который будет подключаться к указанной удаленной машине.
Параметры
- тип
Тип создаваемого сокета. Должен быть
tcp
илиudp
. - параметры
CreateOptions необязательно
Варианты розеток.
- перезвонить
функция необязательна
Параметр
callback
выглядит так:(createInfo: CreateInfo) => void
- createInfo
Возврат
Обещание< CreateInfo >
Хром 121+Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.
destroy()
chrome.socket.destroy(
socketId: number,
): void
Уничтожает сокет. Каждый созданный сокет должен быть уничтожен после использования.
Параметры
- socketId
число
SocketId.
disconnect()
chrome.socket.disconnect(
socketId: number,
): void
Отключает сокет. Для UDP-сокетов disconnect
не является операцией, но её можно безопасно выполнить.
Параметры
- socketId
число
SocketId.
getInfo()
chrome.socket.getInfo(
socketId: number,
callback?: function,
): Promise<SocketInfo>
Возвращает состояние указанного сокета.
Параметры
- socketId
число
SocketId.
- перезвонить
функция необязательна
Параметр
callback
выглядит так:(result: SocketInfo) => void
- результат
Возврат
Обещание <SocketInfo>
Хром 121+Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.
getJoinedGroups()
chrome.socket.getJoinedGroups(
socketId: number,
callback: function,
): void
Получить адреса многоадресной группы, к которой в данный момент присоединен сокет.
Параметры
- socketId
число
SocketId.
- перезвонить
функция
Параметр
callback
выглядит так:(groups: string[]) => void
- группы
нить[]
getNetworkList()
chrome.socket.getNetworkList(
callback?: function,
): Promise<NetworkInterface[]>
Получает информацию о локальных адаптерах в этой системе.
Параметры
- перезвонить
функция необязательна
Параметр
callback
выглядит так:(result: NetworkInterface[]) => void
- результат
Возврат
Обещание< СетевойИнтерфейс []>
Хром 121+Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.
joinGroup()
chrome.socket.joinGroup(
socketId: number,
address: string,
callback: function,
): void
Присоединитесь к многоадресной группе и начните получать пакеты из этой группы. Перед вызовом этого метода сокет должен иметь тип UDP и быть привязан к локальному порту.
Параметры
- socketId
число
SocketId.
- адрес
нить
Адрес группы, к которой нужно присоединиться. Доменные имена не поддерживаются.
- перезвонить
функция
Параметр
callback
выглядит так:(result: number) => void
- результат
число
leaveGroup()
chrome.socket.leaveGroup(
socketId: number,
address: string,
callback: function,
): void
Выйдите из мультивещательной группы, к которой вы ранее присоединились с помощью joinGroup
. Перед уничтожением сокета или выходом из системы выходить из мультивещательной группы не обязательно. Эта функция автоматически вызывается операционной системой.
Выход из группы не позволит маршрутизатору отправлять многоадресные датаграммы на локальный хост, при условии, что никакой другой процесс на хосте не присоединен к группе.
Параметры
- socketId
число
SocketId.
- адрес
нить
Адрес группы, которую нужно покинуть. Доменные имена не поддерживаются.
- перезвонить
функция
Параметр
callback
выглядит так:(result: number) => void
- результат
число
listen()
chrome.socket.listen(
socketId: number,
address: string,
port: number,
backlog?: number,
callback: function,
): void
Этот метод применим только к TCP-сокетам. Прослушивает соединения по указанному порту и адресу. Это фактически делает сокет серверным, и функции клиентского сокета (подключение, чтение, запись) больше не могут использоваться на этом сокете.
Параметры
- socketId
число
SocketId.
- адрес
нить
Адрес локальной машины.
- порт
число
Порт локальной машины.
- отставание
номер необязательный
Длина очереди прослушивания сокета.
- перезвонить
функция
Параметр
callback
выглядит так:(result: number) => void
- результат
число
read()
chrome.socket.read(
socketId: number,
bufferSize?: number,
callback: function,
): void
Считывает данные из указанного подключенного сокета.
Параметры
- socketId
число
SocketId.
- Размер буфера
номер необязательный
Размер буфера чтения.
- перезвонить
функция
Параметр
callback
выглядит так:(readInfo: ReadInfo) => void
- readInfo
recvFrom()
chrome.socket.recvFrom(
socketId: number,
bufferSize?: number,
callback: function,
): void
Получает данные из указанного сокета UDP.
Параметры
- socketId
число
SocketId.
- Размер буфера
номер необязательный
Размер приемного буфера.
- перезвонить
функция
Параметр
callback
выглядит так:(recvFromInfo: RecvFromInfo) => void
- recvFromInfo
secure()
chrome.socket.secure(
socketId: number,
options?: SecureOptions,
callback: function,
): void
Запустите клиентское соединение TLS через подключенный клиентский сокет TCP.
Параметры
- socketId
число
Подключенная розетка для использования.
- параметры
SecureOptions необязательно
Ограничения и параметры TLS-соединения.
- перезвонить
функция
Параметр
callback
выглядит так:(result: number) => void
- результат
число
sendTo()
chrome.socket.sendTo(
socketId: number,
data: ArrayBuffer,
address: string,
port: number,
callback: function,
): void
Отправляет данные по указанному UDP-сокету на указанный адрес и порт.
Параметры
- socketId
число
SocketId.
- данные
ArrayBuffer
Данные для записи.
- адрес
нить
Адрес удаленной машины.
- порт
число
Порт удаленной машины.
- перезвонить
функция
Параметр
callback
выглядит так:(writeInfo: WriteInfo) => void
- writeInfo
setKeepAlive()
chrome.socket.setKeepAlive(
socketId: number,
enable: boolean,
delay?: number,
callback: function,
): void
Включает или выключает функцию поддержания активности TCP-соединения.
Параметры
- socketId
число
SocketId.
- давать возможность
булев
Если да, включите функцию поддержания активности.
- задерживать
номер необязательный
Установите задержку в секундах между последним полученным пакетом данных и первым запросом keepalive. Значение по умолчанию — 0.
- перезвонить
функция
Параметр
callback
выглядит так:(result: boolean) => void
- результат
булев
setMulticastLoopbackMode()
chrome.socket.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
число
SocketId.
- включено
булев
Укажите, следует ли включить режим замыкания на себя.
- перезвонить
функция
Параметр
callback
выглядит так:(result: number) => void
- результат
число
setMulticastTimeToLive()
chrome.socket.setMulticastTimeToLive(
socketId: number,
ttl: number,
callback: function,
): void
Установите время жизни многоадресных пакетов, отправляемых в многоадресную группу.
Вызов этого метода не требует разрешений на многоадресную передачу.
Параметры
- socketId
число
SocketId.
- ттл
число
Значение времени жизни.
- перезвонить
функция
Параметр
callback
выглядит так:(result: number) => void
- результат
число
setNoDelay()
chrome.socket.setNoDelay(
socketId: number,
noDelay: boolean,
callback: function,
): void
Устанавливает или сбрасывает TCP_NODELAY
для TCP-соединения. Алгоритм Нейгла будет отключен при установке TCP_NODELAY
.
Параметры
- socketId
число
SocketId.
- noDelay
булев
Если true, отключает алгоритм Нейгла.
- перезвонить
функция
Параметр
callback
выглядит так:(result: boolean) => void
- результат
булев
write()
chrome.socket.write(
socketId: number,
data: ArrayBuffer,
callback: function,
): void
Записывает данные на указанный подключенный сокет.