chrome.socket

Описание

Используйте 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

Свойства

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

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()

Promise
chrome.socket.create(
  type: SocketType,
  options?: CreateOptions,
  callback?: function,
)
: Promise<CreateInfo>

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

Параметры

  • тип

    Тип создаваемого сокета. Допустимые значения: tcp или udp.

  • Параметры

    CreateOptions необязательный

    Параметры сокета.

  • обратный вызов

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

    Параметр callback выглядит следующим образом:

    (createInfo: CreateInfo) => void

Возвраты

  • 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()

Promise
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()

Promise
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

recvFrom()

chrome.socket.recvFrom(
  socketId: number,
  bufferSize?: number,
  callback: function,
)
: void

Получает данные из указанного сокета UDP.

Параметры

  • socketId

    число

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

  • bufferSize

    number (необязательно)

    Размер буфера приема.

  • обратный вызов

    function

    Параметр callback выглядит следующим образом:

    (recvFromInfo: RecvFromInfo) => void

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

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

Записывает данные в указанный подключенный сокет.

Параметры

  • socketId

    число

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

  • делал.

    ArrayBuffer

    Данные для записи.

  • обратный вызов

    function

    Параметр callback выглядит следующим образом:

    (writeInfo: WriteInfo) => void