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. To maximize performance, parameters are not validated. It is the caller's responsibility to ensure that they are correct.
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);