Как прочитать первые n байтов буфера и преобразовать в строку в NodeJS? - PullRequest
0 голосов
/ 18 июня 2019

У меня есть строка, которая была отправлена ​​по сети и поступила на мой сервер в качестве буфера.Он был отформатирован под мой собственный протокол (теоретически, пока не реализован).Я хотел использовать первые n байтов для строки, которая будет идентифицировать протокол.

Я сделал:

data.toString('utf8');

для всего буфера, но это просто дает мне весь пакет в виде строки, а это не то, чего я хочу достичь.

Когдасообщение получено, как мне преобразовать подмножество байтов в строку?

Заранее спасибо

Ответы [ 2 ]

2 голосов
/ 18 июня 2019

Метод Buffer.toString() принимает параметры start и end, которые можно использовать, чтобы вырезать только то подмножество, которое требуется для вашей подстроки.Это может, в зависимости от вашей реализации, быть быстрее, чем выделение нового посредника Buffer, как вы предложили в своем ответе.

Проверьте метод Node's Buffer.toString() для получения дополнительной информации.

1 голос
/ 18 июня 2019

Узнал как.

Вы должны скопировать желаемое количество байтов в другой буфер, вызвав метод copy в исходном буфере, то есть:

sourceBuffer.copy(targetBuffer, targetStartIndex, sourceStartIndex, sourceEndIndex)

Это даст вашему targetBuffer необходимые данные, которые вы затем сможете вызвать toString () или любой другой метод для преобразования массива буферов в желаемый тип данных.

...