bufferutil is what makes ws fast. It provides some utilities to efficiently perform some operations such as masking and unmasking the data payload of WebSocket frames.
npm install bufferutil --save-optional The --save-optional flag tells npm to save the package in your package.json under the optionalDependencies key.
The module exports two functions.
Masks a buffer using the given masking-key as specified by the WebSocket protocol.
source- The buffer to mask.mask- A buffer representing the masking-key.output- The buffer where to store the result.offset- The offset at which to start writing.length- The number of bytes to mask.
'use strict';constbufferUtil=require('bufferutil');constcrypto=require('crypto');constsource=crypto.randomBytes(10);constmask=crypto.randomBytes(4);bufferUtil.mask(source,mask,source,0,source.length);Unmasks a buffer using the given masking-key as specified by the WebSocket protocol.
buffer- The buffer to unmask.mask- A buffer representing the masking-key.
'use strict';constbufferUtil=require('bufferutil');constcrypto=require('crypto');constbuffer=crypto.randomBytes(10);constmask=crypto.randomBytes(4);bufferUtil.unmask(buffer,mask);