Как разделить буферизованную строку для отправки в виде нескольких пакетов с определенным размером байта?

#javascript #react-native #buffer

#javascript #react-native #буфер

Вопрос:

Я отправляю данные на устройство BLE, и я считаю, что у него есть ограничение в байтах 28 байт на пакеты. Как я могу разделить этот буфер на определенные размеры байтов для отправки?

  let string = 'How do I split this string?';
 let commandInBase64 = Buffer.from(string).toString('base64'); // too big to send

 device.writeCharacteristicWithResponseForService(serviceUUID, commandUUID, commandInBase64)
   .catch(handleError);
  

Комментарии:

1. может ли строка содержать символы за пределами диапазона ASCII (код > 127) ? Они будут закодированы более чем в 1 байт и не должны разделяться. Кроме того, вы можете просто нарезать буфер на куски длиной 21 байт и преобразовать их в base64.

2. @Thomas Я работаю с SSID, поэтому я так считаю, и даже тогда крайние случаи я смогу обработать позже. Итак, что-то вроде этого? Где commandInBase64 будет первым пакетом? « let string = ‘Как мне разделить эту строку?’; пусть bufferedString = Buffer.from(строка); пусть subString = bufferedString.slice(0, 22) пусть commandInBase64 = subString.tostring(‘base64’); «

3. 21, а не 22 символа, но да