Update RFCOMM Bluetooth di Web Serial

François Beaufort
François Beaufort

Web Serial API mendukung komunikasi dengan layanan RFCOMM di perangkat Bluetooth Klasik yang disambungkan dari Chrome 117 di desktop. Misalnya, hal ini memungkinkan earbud nirkabel menggunakan RFCOMM untuk mengelola setelan audio dan update firmware. Lihat Serial melalui Bluetooth di web untuk mempelajari lebih lanjut.

Mulai Chrome 130 untuk desktop, peningkatan pada Web Serial API memungkinkan aplikasi web mendeteksi kapan port serial RFCOMM Bluetooth tersedia, tanpa harus membuka port. Hal ini mencegah koneksi ulang yang tidak perlu saat perangkat nirkabel sengaja diputus.

Jika perangkat nirkabel keluar dari jangkauan host, port serial nirkabel apa pun yang dibuka oleh aplikasi web akan otomatis ditutup. Dalam kasus tersebut, aplikasi web dapat mencoba membuka kembali port dengan metode SerialPort open(). Namun, jika perangkat nirkabel sengaja diputus (misalnya, oleh pengguna dari panel kontrol sistem operasi), aplikasi web harus menahan diri untuk membuka kembali port untuk mencegah koneksi ulang ke perangkat nirkabel.

Dengan mengekspos status koneksi logis perangkat nirkabel yang menghosting port serial nirkabel melalui atribut SerialPort connected boolean baru, aplikasi web kini dapat membedakan kasus ini, dan hanya terhubung kembali jika pemutusan koneksi tidak disengaja.

Atribut SerialPort connected bernilai benar untuk port serial nirkabel jika perangkat nirkabel yang menghosting port memiliki koneksi aktif ke sistem. Untuk port serial berkabel, nilainya benar jika port secara fisik terhubung ke sistem.

Cuplikan berikut menunjukkan cara memeriksa perangkat yang tersedia dan berpotensi terhubung secara otomatis.

const ports = await navigator.serial.getPorts();
for (const port of ports) {
  if (port.connected) {
    // Automatically try to connect to the Bluetooth device.
    await port.open({ baudRate: 9600 });
  } else {
    // Otherwise, when the port is not logically connected:
    // 1. Prompt the user to make sure the Bluetooth device is available.
    // 2. Show a "connect" button to try opening the port.
  }
}

Sebelumnya, hanya port serial berkabel yang mengirim peristiwa connect dan disconnect. Port serial RFCOMM Bluetooth kini mengirimkan peristiwa ini saat port terhubung atau terputus secara logis.

Demo

Demo SerialPort terhubung.

Resource

Ucapan terima kasih

Terima kasih kepada Jack Hsieh dan Reilly Grant atas ulasan mereka.