Node.js implementation of the Web Bluetooth Specification
Node.js > v8.14.0, which includes npm.
$ npm install webbluetoothThe module exports a default navigator.bluetooth instance, the Bluetooth class to allow you to instantiate your own bluetooth instances and some helper methods:
- bluetooth
- Bluetooth()
- getCanonicalUUID()
- getServiceUUID()
- getCharacteristicUUID()
- getDescriptorUUID()
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: