event-message-chunker.js 727 B

123456789101112131415161718192021222324252627282930
  1. /**
  2. * Takes in a buffer of event messages and splits them into individual messages.
  3. * @param {Buffer} buffer
  4. * @api private
  5. */
  6. function eventMessageChunker(buffer) {
  7. /** @type Buffer[] */
  8. var messages = [];
  9. var offset = 0;
  10. while (offset < buffer.length) {
  11. var totalLength = buffer.readInt32BE(offset);
  12. // create new buffer for individual message (shares memory with original)
  13. var message = buffer.slice(offset, totalLength + offset);
  14. // increment offset to it starts at the next message
  15. offset += totalLength;
  16. messages.push(message);
  17. }
  18. return messages;
  19. }
  20. /**
  21. * @api private
  22. */
  23. module.exports = {
  24. eventMessageChunker: eventMessageChunker
  25. };