Я использую код в примере https://googlechrome.github.io/samples/web-bluetooth/notifications.html, чтобы подписаться на уведомления от моего устройства Bluetooth.
return myCharacteristic.startNotifications().then(_ => {
log('> Notifications started');
myCharacteristic.addEventListener('characteristicvaluechanged', handleNotifications);
});
Когда я запускаю startNotification, мое устройство Bluetooth распознает запрос уведомления и отвечает передачей буфера обратно в Интернет, однако кажется, что, поскольку оно вызывается НЕМЕДЛЕННО после вызова startNotification ()Интернет не готов принять уведомление, и оно полностью пропущено.
Я попытался переместить прослушиватель характерного события перед startNotification, например:
myCharacteristic.addEventListener('characteristicvaluechanged', handleNotifications);
return myCharacteristic.startNotifications().then(_ => {
log('> Notifications started');
});
но это, похоже, не поможет.
Если я установлю setTimeout даже на 1 миллисекунду на моем устройстве Bluetooth перед передачей веб-события обратноСлушатель принимает уведомления без проблем.
Я бы предпочел внести изменения в мой код веб-соединения Bluetooth, чем изменить код моего устройства Bluetooth, есть идеи, что можно попробовать?