【问题标题】:socket.io: transport close when sending a base64 imagesocket.io:发送base64图像时传输关闭
【发布时间】:2021-06-30 23:38:06
【问题描述】:

我正在使用 socket.io v4.0.0 和 socket.io-client v4.0.0,我想通过 socket.io 服务器以 base64 广播图像。
服务器端初始化代码

    this.io = new Server(httpServer, {
        cors: {
          origin: '*',
          credentials: true
        }
    });

    this.io.on('connection', (socket) => {
        this.onConnection(socket);
    });

每当我发送带有socket.emit('broadcastImage'. base64ImageData) 的base64 图像时,我都会遇到Transport close 错误并且客户端断开连接。我在开发者控制台中打印了数据,它说数据库 base64 是 1.7 Mb。新版本的 socket.io 是否存在限制可以发送的数据大小的问题,或者是超时问题?我试图在服务器端设置一个很大的pingtimeoutpinginterval 值,但没有成功。

编辑:经过多次测试,似乎低于 1Mb 没问题,每当数据高于 1Mb 时,我都会出现 Transport close 错误

【问题讨论】:

    标签: typescript socket.io


    【解决方案1】:

    解决了!这是因为在从 2.x 迁移到 3.x 的过程中,maxHttpBufferSize100Mb 减少到1Mb。在服务器初始化中将此属性设置回100Mb 为我解决了这个问题:

         this.io = new Server(httpServer, {
                cors: {
                  origin: '*',
                  credentials: true
                },
                maxHttpBufferSize: 1e8
            });
        }
    

    【讨论】:

      猜你喜欢
      • 2017-11-23
      • 1970-01-01
      • 2014-10-07
      • 1970-01-01
      • 2018-07-29
      • 2016-08-18
      • 2017-11-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多