CNode

socket.io操作二进制文件问题

问答
Hhaibo32012发布于12 年前最后回复12 年前3 回复9012 浏览0 收藏

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

查看回复

回复 (3)

R
ravenwang#1·12 年前

贴下具体代码

R
ravenwang#2·12 年前

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

H
haibo32012#3·12 年前

@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;});
参与回复
登录后即可参与回复。登录