(opcode)
| 15065 | this.frameData = data; |
| 15066 | } |
| 15067 | createFrame(opcode) { |
| 15068 | const frameData = this.frameData; |
| 15069 | const maskKey = generateMask(); |
| 15070 | const bodyLength = frameData?.byteLength ?? 0; |
| 15071 | let payloadLength = bodyLength; |
| 15072 | let offset = 6; |
| 15073 | if (bodyLength > maxUnsigned16Bit) { |
| 15074 | offset += 8; |
| 15075 | payloadLength = 127; |
| 15076 | } else if (bodyLength > 125) { |
| 15077 | offset += 2; |
| 15078 | payloadLength = 126; |
| 15079 | } |
| 15080 | const buffer2 = Buffer.allocUnsafe(bodyLength + offset); |
| 15081 | buffer2[0] = buffer2[1] = 0; |
| 15082 | buffer2[0] |= 128; |
| 15083 | buffer2[0] = (buffer2[0] & 240) + opcode; |
| 15084 | buffer2[offset - 4] = maskKey[0]; |
| 15085 | buffer2[offset - 3] = maskKey[1]; |
| 15086 | buffer2[offset - 2] = maskKey[2]; |
| 15087 | buffer2[offset - 1] = maskKey[3]; |
| 15088 | buffer2[1] = payloadLength; |
| 15089 | if (payloadLength === 126) { |
| 15090 | buffer2.writeUInt16BE(bodyLength, 2); |
| 15091 | } else if (payloadLength === 127) { |
| 15092 | buffer2[2] = buffer2[3] = 0; |
| 15093 | buffer2.writeUIntBE(bodyLength, 4, 6); |
| 15094 | } |
| 15095 | buffer2[1] |= 128; |
| 15096 | for (let i = 0; i < bodyLength; ++i) { |
| 15097 | buffer2[offset + i] = frameData[i] ^ maskKey[i & 3]; |
| 15098 | } |
| 15099 | return buffer2; |
| 15100 | } |
| 15101 | /** |
| 15102 | * @param {Uint8Array} buffer |
| 15103 | */ |
no test coverage detected