Estoy usando Guacamole.client.createClipboardStream para crear una secuencia de portapapeles y enviar la secuencia en el evento de pegado, pero el portapapeles remoto aún está vacío.
const stream = client.createClipboardStream("text/plain"); stream.sendBlob(data);Tuve el mismo problema, pero luego descubrí que, según la especificación Guacamole Common Js, el método OuputStream.sendBlob espera una cadena codificada en Base64 que represente el blob.
Aquí hay un pequeño fragmento de mi código bastante temprano para hacer esto
const blobToBase64 = (blob) => { return new Promise((res, _) => { const reader = new FileReader(); reader.onloadend = () => res(reader.result); reader.readAsDataURL(blob); }); } const sendBlobBasedOnMimeType = async (item, mimeType) => { const blob = await item.getType(mimeType); const blobAsDataUrl = await blobToBase64(blob); const blobAsB64 = blobAsDataUrl.split(",")[1]; console.log("size of b64 blob", blobAsB64.length); const stream = guac.current.createClipboardStream(mimeType, "remote"); stream.onack = () => { stream.sendEnd(); } stream.sendBlob(blobAsB64); }