socket.io操作二进制文件问题
发布于 4个月前 作者 haibo32012 697 次浏览 来自 问答

我在客户端使用 socket.emit(‘message’,blob),可以发送到服务器端,但我再用socket.broadcast.emit('message’,blob), 广播出去的时候,客户端收不到数据,这是什么问题?

3 回复

贴下具体代码

@ravenwang 服务器端接受来自客户端的数据,测试成功接受到数据,server code:

  socket.on('photoMessage', function (data) {
    // we tell the client to execute 'new message'
      socket.broadcast.emit('message', {
        photo: data.photo
      });
      console.log('hello');
  });

客户端处理服务器广播的数据,alert成功显示,照片无法显示 client code:

socket.on('message',function(data) {
  alert('hello world!');

  var uint8Arr = new Uint8Array(data.photo);
  var str = String.fromCharCode.apply(null,uint8Arr);
  var base64String = btoa(str);
  result.src= 'data:image/png;base64,' + base64String;});

确认下客户端data是否收到了数据,收到的话应该是解析的问题

回到顶部