Node.js implementation of the Web Bluetooth Specification
Node.js > v8.14.0, which includes npm
.
$ npm install webbluetooth
The module exports a default navigator.bluetooth
instance, the Bluetooth
class to allow you to instantiate your own bluetooth instances and some helper methods:
To use existing Web Bluetooth scripts, you can simply use the default bluetooth
instance in place of the navigator.bluetooth
object:
const bluetooth = require("webbluetooth").bluetooth;
const device = await bluetooth.requestDevice({
filters:[{ services:[ "heart_rate" ] }]
});
const server = await device.gatt.connect();
...
The first device matching the filters will be returned.
You may want to create your own instance of the Bluetooth
class. For example, to inject a device chooser function or control the referring device:
const Bluetooth = require("webbluetooth").Bluetooth;
const deviceFound = (device, selectFn) => {
// If device can be automatically selected, do so by returning true
if (device.name === "myName") return true;
// Otherwise store the selectFn somewhere and execute it later to select this device
};
const bluetooth = new Bluetooth({ deviceFound });
const device = await bluetooth.requestDevice({
filters:[{ services:[ "heart_rate" ] }]
});
const server = await device.gatt.connect();
...
The Web Bluetooth specification can be found here:
Gets a canonical UUID from a partial UUID in string or hex format
The partial UUID
canonical UUID
Gets a canonical characteristic UUID from a known characteristic name or partial UUID in string or hex format
The known characteristic name
canonical UUID
Gets a canonical descriptor UUID from a known descriptor name or partial UUID in string or hex format
The known descriptor name
canonical UUID
Gets a canonical service UUID from a known service name or partial UUID in string or hex format
The known service name
canonical UUID
Default bluetooth instance synonymous with
navigator.bluetooth