docs: public WebSocketFrame setCloseFramePayload(int closeCode, String reason)
      {
          // Convert the close code to a 2-byte unsigned integer
          // in network byte order.
          byte[] encodedCloseCode = new byte[] {
              (byte)((closeCode >> 8) & 0xFF),
              (byte)((closeCode     ) & 0xFF)
          };
  
          // If a reason string is not given.
          if (reason == null || reason.length() == 0)
          {
              // Use the close code only.
              return setPayload(encodedCloseCode);
          }
  
          // Convert the reason into a byte array.
          byte[] encodedReason = Misc.getBytesUTF8(reason);
  
          // Concatenate the close code and the reason.
          byte[] payload = new byte[2 + encodedReason.length];
          System.arraycopy(encodedCloseCode, 0, payload, 0, 2);
          System.arraycopy(encodedReason, 0, payload, 2, encodedReason.length);
  
          // Use the concatenated string.
          return setPayload(payload);
      }