noble/bleno

Unable to use GATT server with central role

Open

#326 opened on Jul 6, 2017

View on GitHub
 (1 comment) (1 reaction) (0 assignees)JavaScript (2,083 stars) (465 forks)batch import
help wanted

Description

I'm trying to use noble and bleno together in a single application to allow linux to be in the central role but also be the GATT server. I actually have this working, but had to remove an if statement in bleno. Namely, I had to remove this if:

BlenoBindings.prototype.onLeConnComplete = function(status, handle, role, addressType, address, interval, latency, supervisionTimeout, masterClockAccuracy) {
  // if (role !== 1) {
  //   // not slave, ignore
  //   return;
  // }
  ...
}

from here.

With that if the AclStream never gets set up and bleno never responds to discover services requests (or any other request).

I understand why that check is there, since a connection callback is valid in both the central and peripheral contexts, however, I believe a GATT server is equally valid in both contexts. Any thoughts on this? Would an environment variable be the right approach to skip that check in cases like mine?

Contributor guide