Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
3.7k views
in Technique[技术] by (71.8m points)

javascript - Sending large base64 image to socket.io server

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);
    });

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
等待大神答复

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...