Веб-Bluetooth пропускает начальные уведомления - PullRequest
0 голосов
/ 22 января 2019

Я использую код в примере 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, есть идеи, что можно попробовать?

...