chrome.bluetoothSocket

Описание

Используйте API chrome.bluetoothSocket, чтобы отправлять данные на устройства Bluetooth и получать их с таких устройств, используя подключения RFCOMM и L2CAP.

Доступность

Только для ChromeOS

Манифест

Чтобы использовать этот API, в манифесте нужно объявить следующие ключи:

"bluetooth"

Типы

AcceptError

Перечисление

system_error
Произошла системная ошибка, и подключение может быть невозможно восстановить.

"not_listening"
Сокет не прослушивается.

AcceptErrorInfo

Свойства

  • ошибка

    Код ошибки, указывающий на то, что пошло не так.

  • errorMessage

    string

    Сообщение об ошибке.

  • socketId

    число

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

AcceptInfo

Свойства

  • clientSocketId

    число

    Идентификатор клиентского сокета, то есть идентификатор сокета нового подключения. Этот идентификатор сокета следует использовать только с функциями из пространства имен chrome.bluetoothSocket. Обратите внимание, что клиентский сокет изначально приостановлен и должен быть явно возобновлен приложением, чтобы начать получать данные.

  • socketId

    число

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

CreateInfo

Свойства

  • socketId

    число

    Идентификатор созданного сокета. Обратите внимание, что идентификаторы сокетов, созданные с помощью этого API, несовместимы с идентификаторами сокетов, созданными с помощью других API, например [sockets.tcp](../sockets_tcp/).

ListenOptions

Свойства

  • бэклог

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

    Длина очереди прослушивания сокета. Значение по умолчанию зависит от хост-подсистемы операционной системы.

  • канал

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

    Канал RFCOMM, используемый listenUsingRfcomm. Если канал указан, он не должен был использоваться ранее, иначе вызов метода завершится ошибкой. Если канал не указан, он будет назначен автоматически.

  • МПП

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

    Мультиплексор протокола/сервиса L2CAP, используемый listenUsingL2cap. Если указан, этот PSM не должен был использоваться ранее, иначе вызов метода завершится ошибкой. Если вы не укажете его, будет автоматически назначен неиспользуемый МПП.

ReceiveError

Перечисление

"disconnected"
Подключение было разорвано.

system_error
Произошла системная ошибка, и подключение может быть невозможно восстановить.

"not_connected"
Сокет не подключен.

ReceiveErrorInfo

Свойства

  • ошибка

    Код ошибки, указывающий на то, что пошло не так.

  • errorMessage

    string

    Сообщение об ошибке.

  • socketId

    число

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

ReceiveInfo

Свойства

  • делал.

    ArrayBuffer

    Полученные данные. Максимальный размер – bufferSize.

  • socketId

    число

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

SocketInfo

Свойства

  • Обращаться (к определенному вопросу)

    Строка (необязательно)

    Если базовый сокет подключен, содержит адрес Bluetooth устройства, к которому он подключен.

  • bufferSize

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

    Размер буфера, используемого для получения данных. Если размер буфера не указан явно, значение не предоставляется.

  • подключено

    Логическое значение

    Флаг, указывающий, подключен ли сокет к удаленному узлу.

  • name

    Строка (необязательно)

    Строка, определенная приложением и связанная с сокетом.

  • приостановлено

    Логическое значение

    Флаг, указывающий, блокирует ли подключенный сокет отправку дополнительных данных от своего пира или же запросы на подключение к прослушивающему сокету отправляются через событие onAccept или ставятся в очередь прослушивания. Прочтите setPaused. Значение по умолчанию – false.

  • постоянный

    Логическое значение

    Флаг, указывающий, остается ли сокет открытым, когда страница событий приложения выгружается (см. SocketProperties.persistent). Значение по умолчанию – false.

  • socketId

    число

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

  • uuid

    Строка (необязательно)

    Если базовый сокет подключен, содержит информацию о UUID сервиса, к которому он подключен. Если базовый сокет прослушивается, содержит информацию о UUID сервиса, на котором он прослушивается.

SocketProperties

Свойства

  • bufferSize

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

    Размер буфера, используемого для получения данных. Значение по умолчанию – 4096.

  • name

    Строка (необязательно)

    Определенная приложением строка, связанная с сокетом.

  • постоянный

    Логическое значение (необязательно)

    Флаг, указывающий, остается ли сокет открытым, когда страница событий приложения выгружается (см. статью Управление жизненным циклом приложения). Значение по умолчанию – false.. При загрузке приложения все сокеты, ранее открытые с параметром persistent=true, можно получить с помощью getSockets.

Методы

close()

Promise
chrome.bluetoothSocket.close(
  socketId: number,
  callback?: function,
)
: Promise<void>

Отключает и уничтожает сокет. Каждый созданный сокет должен быть закрыт после использования. Идентификатор сокета перестает быть действительным сразу после вызова функции. Однако сокет гарантированно закрывается только при вызове обратного вызова.

Параметры

  • socketId

    число

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

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

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

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

    () => void

Возвраты

  • Promise<void>

    Chrome 91 и более поздних версий

    Объекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.

connect()

Promise
chrome.bluetoothSocket.connect(
  socketId: number,
  address: string,
  uuid: string,
  callback?: function,
)
: Promise<void>

Подключает сокет к удаленному устройству Bluetooth. Когда операция connect завершается успешно, при получении данных от другого игрока генерируются события onReceive. Если во время получения пакетов средой выполнения возникает ошибка сети, генерируется событие onReceiveError. После этого для сокета не будут генерироваться события onReceive, пока не будет вызван метод setPaused(false).

Параметры

  • socketId

    число

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

  • Обращаться (к определенному вопросу)

    string

    Адрес устройства Bluetooth.

  • uuid

    string

    UUID сервиса, к которому нужно подключиться.

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

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

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

    () => void

Возвраты

  • Promise<void>

    Chrome 91 и более поздних версий

    Объекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.

create()

Promise
chrome.bluetoothSocket.create(
  properties?: SocketProperties,
  callback?: function,
)
: Promise<CreateInfo>

Создает сокет Bluetooth.

Параметры

  • объекты

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

    Свойства сокета (необязательно).

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

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

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

    (createInfo: CreateInfo) => void

    • createInfo

      Результат создания сокета.

Возвраты

  • Promise<CreateInfo>

    Chrome 91 и более поздних версий

    Объекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.

disconnect()

Promise
chrome.bluetoothSocket.disconnect(
  socketId: number,
  callback?: function,
)
: Promise<void>

Отключает сокет. Идентификатор сокета остается действительным.

Параметры

  • socketId

    число

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

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

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

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

    () => void

Возвраты

  • Promise<void>

    Chrome 91 и более поздних версий

    Объекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.

getInfo()

Promise
chrome.bluetoothSocket.getInfo(
  socketId: number,
  callback?: function,
)
: Promise<SocketInfo>

Получает состояние указанного сокета.

Параметры

  • socketId

    число

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

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

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

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

    (socketInfo: SocketInfo) => void

    • socketInfo

      Объект, содержащий информацию о сокете.

Возвраты

  • Promise<SocketInfo>

    Chrome 91 и более поздних версий

    Объекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.

getSockets()

Promise
chrome.bluetoothSocket.getSockets(
  callback?: function,
)
: Promise<SocketInfo[]>

Получает список открытых сокетов, принадлежащих приложению.

Параметры

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

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

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

    (sockets: SocketInfo[]) => void

    • сокеты

      Массив объектов, содержащих информацию о сокетах.

Возвраты

  • Promise<SocketInfo[]>

    Chrome 91 и более поздних версий

    Объекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.

listenUsingL2cap()

Promise
chrome.bluetoothSocket.listenUsingL2cap(
  socketId: number,
  uuid: string,
  options?: ListenOptions,
  callback?: function,
)
: Promise<void>

Прослушивание подключений по протоколу L2CAP.

Параметры

  • socketId

    число

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

  • uuid

    string

    UUID сервиса, который нужно прослушивать.

  • Параметры

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

    Дополнительные параметры для сервиса.

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

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

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

    () => void

Возвраты

  • Promise<void>

    Chrome 91 и более поздних версий

    Объекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.

listenUsingRfcomm()

Promise
chrome.bluetoothSocket.listenUsingRfcomm(
  socketId: number,
  uuid: string,
  options?: ListenOptions,
  callback?: function,
)
: Promise<void>

Прослушивание подключений по протоколу RFCOMM.

Параметры

  • socketId

    число

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

  • uuid

    string

    UUID сервиса, который нужно прослушивать.

  • Параметры

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

    Дополнительные параметры сервиса.

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

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

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

    () => void

Возвраты

  • Promise<void>

    Chrome 91 и более поздних версий

    Объекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.

send()

Promise
chrome.bluetoothSocket.send(
  socketId: number,
  data: ArrayBuffer,
  callback?: function,
)
: Promise<number>

Отправляет данные через указанный сокет Bluetooth.

Параметры

  • socketId

    число

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

  • делал.

    ArrayBuffer

    Данные для отправки.

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

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

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

    (bytesSent: number) => void

    • bytesSent

      число

      Количество отправленных байтов.

Возвраты

  • Promise<number>

    Chrome 91 и более поздних версий

    Объекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.

setPaused()

Promise
chrome.bluetoothSocket.setPaused(
  socketId: number,
  paused: boolean,
  callback?: function,
)
: Promise<void>

Включает или отключает получение сообщений от подключенного сокета или прием новых подключений от прослушивающего сокета. Значение по умолчанию – false. Приостановка подключенного сокета обычно используется приложением для регулирования данных, отправляемых его одноранговым узлом. Когда подключенный сокет приостановлен, событие onReceive не создается. Когда сокет подключен и не приостановлен, события onReceive снова генерируются при получении сообщений. Когда прослушивающий сокет приостановлен, новые подключения принимаются, пока не заполнится его очередь, после чего дополнительные запросы на подключение отклоняются. События onAccept генерируются, только когда сокет не приостановлен.

Параметры

  • socketId

    число

  • приостановлено

    Логическое значение

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

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

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

    () => void

Возвраты

  • Promise<void>

    Chrome 91 и более поздних версий

    Объекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.

update()

Promise
chrome.bluetoothSocket.update(
  socketId: number,
  properties: SocketProperties,
  callback?: function,
)
: Promise<void>

Обновляет свойства сокета.

Параметры

  • socketId

    число

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

  • объекты

    Свойства, которые нужно обновить.

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

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

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

    () => void

Возвраты

  • Promise<void>

    Chrome 91 и более поздних версий

    Объекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.

События

onAccept

chrome.bluetoothSocket.onAccept.addListener(
  callback: function,
)

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

Параметры

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

    function

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

    (info: AcceptInfo) => void

onAcceptError

chrome.bluetoothSocket.onAcceptError.addListener(
  callback: function,
)

Событие возникает, когда во время ожидания новых подключений к сокету происходит ошибка сети. После этого сокету присваивается значение paused и события onAccept для него больше не генерируются.

Параметры

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

    function

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

    (info: AcceptErrorInfo) => void

onReceive

chrome.bluetoothSocket.onReceive.addListener(
  callback: function,
)

Событие, которое происходит при получении данных для определенного сокета.

Параметры

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

    function

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

    (info: ReceiveInfo) => void

onReceiveError

chrome.bluetoothSocket.onReceiveError.addListener(
  callback: function,
)

Событие возникает, когда во время ожидания данных в сокете происходит ошибка сети. После этого сокету присваивается значение paused и события onReceive для него больше не генерируются.

Параметры

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

    function

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

    (info: ReceiveErrorInfo) => void