The mac bindings in the bleno
repository use a XPC connection and an undocumented protocol to communicate directly with the bluetooth daemon.
This is error prone, as the protocol needs to be reverse engineered by sniffing the communication between a regular program which uses the official CoreBluetooth API and the
bluetooth daemon. Since the protocol is not public Apple can change it at anytime (For now every new OSX release changed the protocol).
This package provides the same functionality as the regular bleno mac bindings using the official CoreBluetooth API.
Simply require bleno-mac
instead of bleno
:
const bleno = require('bleno-mac');
On non-Mac platforms this will use the regular bleno implementation and on MacOS it will use the native binding using the official CoreBluetooth API.
Be careful to not write to the Client Characteristic Configuration
descriptor directly to enable notification.
Use subscribe
instead to enable and listen to notifications.
Everything should work that also works with the regular bleno mac bindings.