I am trying to send an image encoded in base64
to a socket.io server. Simply emitting it doesn't seem to work. However, sending shorter strings works fine, the problem is with sending a really long base64
encoded image.
// this works
this.socket.emit('imageUpload', {captureType: "documentBack", data: "simple text"})
// this doesn't
this.socket.emit('imageUpload', {captureType: "documentBack", data: "really long base64 encoded image"})
I have a frontend built with React JS and backend built with Node.
Following the comment by @Zac, I've implemented socket.io-stream
like the documentation instructs but I still can't see the request on the backend. The data appears to have been emitted from the client but I can't see the data on the event handler.
This is what I have so far:
// Client (React.js)
import ss from 'socket.io-stream';
stream = ss.createStream();
ss(this.socket).emit('imageUpload', this.stream, {
captureType: 'documentBack',
data: imageData,
});
// Server (Node.js)
socket.on("imageUpload", (stream, imageData) => {
console.log("Image uploaded");
// console.log(stream);
// console.log(imageData);
socket.broadcast.to(sessionId).emit("imageDownload", imageData);
});
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…