Описание
Используйте chrome.socket API, чтобы отправлять и получать данные по сети через TCP- и UDP-подключения. Примечание. Начиная с Chrome 33 этот API не поддерживается. Вместо него используются API sockets.udp, sockets.tcp и sockets.tcpServer.
Разрешения
socketТипы
AcceptInfo
Свойства
-
resultCode
число
-
socketId
number (необязательно)
Идентификатор принятого сокета.
CreateInfo
Свойства
-
socketId
число
Идентификатор нового сокета.
CreateOptions
NetworkInterface
Свойства
-
Обращаться (к определенному вопросу)
string
Доступный адрес IPv4/6.
-
name
string
Название адаптера. В системах *nix это обычно eth0, lo и т. д.
-
prefixLength
число
Длина префикса.
ReadInfo
Свойства
-
делал.
ArrayBuffer
-
resultCode
число
Код resultCode, возвращенный базовым вызовом read().
RecvFromInfo
Свойства
-
Обращаться (к определенному вопросу)
string
Адрес удаленного компьютера.
-
делал.
ArrayBuffer
-
порт
число
-
resultCode
число
Код resultCode, возвращенный базовым вызовом recvfrom().
SecureOptions
Свойства
-
tlsVersion
TLSVersionConstraints необязательно
SocketInfo
Свойства
-
подключено
Логическое значение
Подключен ли базовый сокет.
Для сокетов
tcpэто значение будет истинным, даже если удаленный узел отключился. Чтение или запись в сокет может привести к ошибке, указывающей на то, что этот сокет должен быть отключен черезdisconnect().Для сокетов
udpэто просто указывает, был ли задан удаленный адрес по умолчанию для чтения и записи пакетов. -
localAddress
Строка (необязательно)
Если базовый сокет привязан или подключен, содержит его локальный адрес IPv4/6.
-
localPort
number (необязательно)
Если базовый сокет привязан или подключен, содержит его локальный порт.
-
peerAddress
Строка (необязательно)
Если базовый сокет подключен, содержит адрес IPv4/6 узла.
-
peerPort
number (необязательно)
Если базовый сокет подключен, содержит порт подключенного узла.
-
socketType
Тип переданного сокета. Это будет
tcpилиudp.
SocketType
Перечисление
"tcp"
"udp"
TLSVersionConstraints
Свойства
-
Функция max
Строка (необязательно)
-
мин.
Строка (необязательно)
Минимальная и максимальная допустимые версии TLS. Допустимые значения:
tls1.2иtls1.3.Значения
tls1иtls1.1больше не поддерживаются. Если для правилаminзадано одно из этих значений, оно будет автоматически заменено наtls1.2. Если для параметраmaxзадано одно из этих значений или любое другое нераспознанное значение, оно будет игнорироваться.
WriteInfo
Свойства
-
bytesWritten
число
Количество отправленных байтов или отрицательный код ошибки.
Методы
accept()
chrome.socket.accept(
socketId: number,
callback: function,
): void
Этот метод применяется только к сокетам TCP. Регистрирует функцию обратного вызова, которая будет вызываться, когда подключение принимается на этом прослушивающем серверном сокете. Сначала необходимо вызвать метод Listen. Если уже есть активный обратный вызов, этот обратный вызов будет выполнен немедленно с ошибкой в качестве resultCode.
Параметры
-
socketId
число
Идентификатор сокета.
-
обратный вызов
function
Параметр
callbackвыглядит следующим образом:(acceptInfo: AcceptInfo) => void
-
acceptInfo
-
bind()
chrome.socket.bind(
socketId: number,
address: string,
port: number,
callback: function,
): void
Привязывает локальный адрес к сокету. В настоящее время сокет TCP не поддерживается.
Параметры
-
socketId
число
Идентификатор сокета.
-
Обращаться (к определенному вопросу)
string
Адрес локального компьютера.
-
порт
число
Порт локального компьютера.
-
обратный вызов
function
Параметр
callbackвыглядит следующим образом:(result: number) => void
-
Результат
число
-
connect()
chrome.socket.connect(
socketId: number,
hostname: string,
port: number,
callback: function,
): void
Подключает сокет к удаленному компьютеру (для сокета tcp). Для сокета udp задает адрес по умолчанию, на который отправляются и с которого считываются пакеты для вызовов read() и write().
Параметры
-
socketId
число
Идентификатор сокета.
-
hostname
string
Имя хоста или IP-адрес удаленного компьютера.
-
порт
число
Порт удаленного компьютера.
-
обратный вызов
function
Параметр
callbackвыглядит следующим образом:(result: number) => void
-
Результат
число
-
create()
chrome.socket.create(
type: SocketType,
options?: CreateOptions,
callback?: function,
): Promise<CreateInfo>
Создает сокет указанного типа, который будет подключаться к указанному удаленному компьютеру.
Параметры
-
тип
Тип создаваемого сокета. Допустимые значения:
tcpилиudp. -
Параметры
CreateOptions необязательный
Параметры сокета.
-
обратный вызов
function необязательно
Параметр
callbackвыглядит следующим образом:(createInfo: CreateInfo) => void
-
createInfo
-
Возвраты
-
Promise<CreateInfo>
Chrome 121 и более поздних версийОбъекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.
destroy()
chrome.socket.destroy(
socketId: number,
): void
Удаляет сокет. Каждый созданный сокет должен быть уничтожен после использования.
Параметры
-
socketId
число
Идентификатор сокета.
disconnect()
chrome.socket.disconnect(
socketId: number,
): void
Отключает сокет. Для сокетов UDP disconnect не работает, но вызов безопасен.
Параметры
-
socketId
число
Идентификатор сокета.
getInfo()
chrome.socket.getInfo(
socketId: number,
callback?: function,
): Promise<SocketInfo>
Получает состояние указанного сокета.
Параметры
-
socketId
число
Идентификатор сокета.
-
обратный вызов
function необязательно
Параметр
callbackвыглядит следующим образом:(result: SocketInfo) => void
-
Результат
-
Возвраты
-
Promise<SocketInfo>
Chrome 121 и более поздних версийОбъекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.
getJoinedGroups()
chrome.socket.getJoinedGroups(
socketId: number,
callback: function,
): void
Получить адреса групп многоадресной рассылки, к которым в настоящее время подключен сокет.
Параметры
-
socketId
число
Идентификатор сокета.
-
обратный вызов
function
Параметр
callbackвыглядит следующим образом:(groups: string[]) => void
-
группы
string[]
-
getNetworkList()
chrome.socket.getNetworkList(
callback?: function,
): Promise<NetworkInterface[]>
Извлекает информацию о локальных адаптерах в этой системе.
Параметры
-
обратный вызов
function необязательно
Параметр
callbackвыглядит следующим образом:(result: NetworkInterface[]) => void
-
Результат
-
Возвраты
-
Promise<NetworkInterface[]>
Chrome 121 и более поздних версийОбъекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.
joinGroup()
chrome.socket.joinGroup(
socketId: number,
address: string,
callback: function,
): void
Присоединиться к группе многоадресной рассылки и начать получать пакеты от этой группы. Сокет должен быть типа UDP и должен быть привязан к локальному порту перед вызовом этого метода.
Параметры
-
socketId
число
Идентификатор сокета.
-
Обращаться (к определенному вопросу)
string
Адрес группы, к которой нужно присоединиться. Доменные имена не поддерживаются.
-
обратный вызов
function
Параметр
callbackвыглядит следующим образом:(result: number) => void
-
Результат
число
-
leaveGroup()
chrome.socket.leaveGroup(
socketId: number,
address: string,
callback: function,
): void
Покинуть группу многоадресной рассылки, к которой вы присоединились с помощью joinGroup. Покидать группу многоадресной рассылки перед удалением сокета или выходом не обязательно. ОС вызывает его автоматически.
После выхода из группы маршрутизатор перестанет отправлять многоадресные датаграммы на локальный хост, если к группе не подключен другой процесс на хосте.
Параметры
-
socketId
число
Идентификатор сокета.
-
Обращаться (к определенному вопросу)
string
Адрес группы, которую нужно покинуть. Доменные имена не поддерживаются.
-
обратный вызов
function
Параметр
callbackвыглядит следующим образом:(result: number) => void
-
Результат
число
-
listen()
chrome.socket.listen(
socketId: number,
address: string,
port: number,
backlog?: number,
callback: function,
): void
Этот метод применяется только к сокетам TCP. Прослушивает подключения на указанном порту и адресе. Это фактически делает его серверным сокетом, и функции клиентского сокета (connect, read, write) больше не могут использоваться в этом сокете.
Параметры
-
socketId
число
Идентификатор сокета.
-
Обращаться (к определенному вопросу)
string
Адрес локального компьютера.
-
порт
число
Порт локального компьютера.
-
бэклог
number (необязательно)
Длина очереди прослушивания сокета.
-
обратный вызов
function
Параметр
callbackвыглядит следующим образом:(result: number) => void
-
Результат
число
-
read()
chrome.socket.read(
socketId: number,
bufferSize?: number,
callback: function,
): void
Считывает данные из указанного подключенного сокета.
Параметры
-
socketId
число
Идентификатор сокета.
-
bufferSize
number (необязательно)
Размер буфера чтения.
-
обратный вызов
function
Параметр
callbackвыглядит следующим образом:(readInfo: ReadInfo) => void
-
readInfo
-
recvFrom()
chrome.socket.recvFrom(
socketId: number,
bufferSize?: number,
callback: function,
): void
Получает данные из указанного сокета UDP.
Параметры
-
socketId
число
Идентификатор сокета.
-
bufferSize
number (необязательно)
Размер буфера приема.
-
обратный вызов
function
Параметр
callbackвыглядит следующим образом:(recvFromInfo: RecvFromInfo) => void
-
recvFromInfo
-
secure()
chrome.socket.secure(
socketId: number,
options?: SecureOptions,
callback: function,
): void
Запускает клиентское подключение TLS через подключенный клиентский сокет TCP.
Параметры
-
socketId
число
Подключенный сокет, который нужно использовать.
-
Параметры
SecureOptions необязательный
Ограничения и параметры для TLS-подключения.
-
обратный вызов
function
Параметр
callbackвыглядит следующим образом:(result: number) => void
-
Результат
число
-
sendTo()
chrome.socket.sendTo(
socketId: number,
data: ArrayBuffer,
address: string,
port: number,
callback: function,
): void
Отправляет данные по указанному сокету UDP на указанный адрес и порт.
Параметры
-
socketId
число
Идентификатор сокета.
-
делал.
ArrayBuffer
Данные для записи.
-
Обращаться (к определенному вопросу)
string
Адрес удаленного компьютера.
-
порт
число
Порт удаленного компьютера.
-
обратный вызов
function
Параметр
callbackвыглядит следующим образом:(writeInfo: WriteInfo) => void
-
writeInfo
-
setKeepAlive()
chrome.socket.setKeepAlive(
socketId: number,
enable: boolean,
delay?: number,
callback: function,
): void
Включает или отключает функцию поддержания активности для TCP-подключения.
Параметры
-
socketId
число
Идентификатор сокета.
-
Включить
Логическое значение
Если задано значение True, функция Keep-Alive включена.
-
delay
number (необязательно)
Укажите задержку в секундах между последним полученным пакетом данных и первым запросом на поддержание соединения. По умолчанию используется значение 0.
-
обратный вызов
function
Параметр
callbackвыглядит следующим образом:(result: boolean) => void
-
Результат
Логическое значение
-
setMulticastLoopbackMode()
chrome.socket.setMulticastLoopbackMode(
socketId: number,
enabled: boolean,
callback: function,
): void
Укажите, будут ли пакеты многоадресной рассылки, отправленные хостом в группу многоадресной рассылки, возвращаться на хост.
Примечание. Поведение setMulticastLoopbackMode в Windows и Unix-подобных системах немного различается. Несоответствие возникает, только если на одном хосте есть несколько приложений, присоединенных к одной группе многоадресной рассылки, но имеющих разные настройки режима обратной связи многоадресной рассылки. В Windows приложения с отключенной обратной связью не будут ПОЛУЧАТЬ пакеты обратной связи, а в Unix-подобных системах – не будут ОТПРАВЛЯТЬ их другим приложениям на том же хосте. Подробнее: https://learn.microsoft.com/en-us/windows/win32/winsock/ip-multicast-2.
Для вызова этого метода не требуются разрешения на многоадресную рассылку.
Параметры
-
socketId
число
Идентификатор сокета.
-
включено
Логическое значение
Укажите, нужно ли включить режим обратной связи.
-
обратный вызов
function
Параметр
callbackвыглядит следующим образом:(result: number) => void
-
Результат
число
-
setMulticastTimeToLive()
chrome.socket.setMulticastTimeToLive(
socketId: number,
ttl: number,
callback: function,
): void
Задайте время жизни пакетов, отправляемых в группу многоадресной рассылки.
Для вызова этого метода не требуются разрешения на многоадресную рассылку.
Параметры
-
socketId
число
Идентификатор сокета.
-
ttl
число
Значение времени жизни.
-
обратный вызов
function
Параметр
callbackвыглядит следующим образом:(result: number) => void
-
Результат
число
-
setNoDelay()
chrome.socket.setNoDelay(
socketId: number,
noDelay: boolean,
callback: function,
): void
Задает или удаляет TCP_NODELAY для TCP-подключения. Если задано значение TCP_NODELAY, алгоритм Нейгла будет отключен.
Параметры
-
socketId
число
Идентификатор сокета.
-
noDelay
Логическое значение
Если задано значение true, алгоритм Нейгла отключается.
-
обратный вызов
function
Параметр
callbackвыглядит следующим образом:(result: boolean) => void
-
Результат
Логическое значение
-
write()
chrome.socket.write(
socketId: number,
data: ArrayBuffer,
callback: function,
): void
Записывает данные в указанный подключенный сокет.