将大型 base64 图像发送到 socket.io 服务器

时间:2021-01-12 17:05:35

标签: javascript node.js reactjs socket.io

我正在尝试将用 base64 编码的图像发送到 socket.io 服务器。简单地发出它似乎不起作用。但是,发送较短的字符串工作正常,问题在于发送非常长的 base64 编码图像。

// 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"})

我有一个用 React JS 构建的前端和用 Node 构建的后端。

按照@Zac 的评论,我已经按照文档说明实现了 socket.io-stream,但我仍然看不到后端的请求。数据似乎是从客户端发出的,但我看不到事件处理程序上的数据。

这是我目前所拥有的:

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

0 个答案:

没有答案