The problem I've observed is that sending for example 100 packets took about 50 seconds which is much longer than expected.
If I tried sending packets without a delay, I realized that CBPeripheralManager updateValue:forCharacteristic:onSubscribedCentrals: returned BOOL value NO indicating packet was not sent, likely because underlying transmit queue is full.
I tried fixing this by resending the packet when queue space becomes available via peripheralManagerIsReadyToUpdateSubscribers, but it still takes around 30 seconds to send 100 packets - with no delay mechanism.
What do I need to consider or change if trying to reduce the duration to around 10 seconds as expected?
By the way, the connection parameters interval is set to 125 milliseconds with 0 latency.