Update RFCOMM Bluetooth di Web Serial

François Beaufort
François Beaufort

Web Serial API mendukung komunikasi dengan layanan RFCOMM di perangkat Bluetooth Classic 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 saat port serial RFCOMM Bluetooth tersedia, tanpa harus membuka port. Tindakan ini mencegah koneksi ulang yang tidak perlu saat perangkat nirkabel sengaja diputus.

Jika perangkat nirkabel berada di luar jangkauan host, port serial nirkabel yang dibuka oleh aplikasi web akan otomatis ditutup. Dalam kasus seperti itu, aplikasi web dapat mencoba membuka kembali port dengan metode SerialPort open(). Namun, jika perangkat nirkabel terputus secara sengaja (misalnya, oleh pengguna dari panel kontrol sistem operasi), aplikasi web harus menahan diri untuk tidak membuka kembali port guna mencegah terhubung kembali 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 terpasang secara fisik 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 mengirimkan peristiwa connect dan disconnect. Port serial RFCOMM Bluetooth kini mengirimkan peristiwa ini saat port terhubung atau terputus secara logis.

Demo

Demo SerialPort yang terhubung.

Resource

Ucapan terima kasih

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