tangjunzuishuai
tj_2525love
采纳率28.6%
2015-04-10 05:09

为什么服务器发过来的二进制数据websocket接收不到?

已采纳

我用if(e) alert(‘abc’)判断e里面什么也没接受到 但是服务器给我发 字符串 或者base64 都可以接收到这是为什么 难道websocket不支持接收 二进制数据吗 还是 我接收的方式不对。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

5条回答

  • showbo GoCityPass新加坡曼谷通票 6年前

    2进制数据用ws.rQshiftStr方法

    点赞 1 评论 复制链接分享
  • oyljerry oyljerry 6年前
    点赞 评论 复制链接分享
  • caozhy 从今以后生命中的每一秒都属于我爱的人 6年前

    服务器是java,客户端是js?难道你服务器也是js?

    点赞 评论 复制链接分享
  • caozhy 从今以后生命中的每一秒都属于我爱的人 6年前
    点赞 评论 复制链接分享
  • u014747970 飘零L 5年前
     var reader = new FileReader();
    

    websocket.onmessage = function(evt){
    if (evt.data instanceof Blob) {
    reader.readAsText(evt.data,"UTF-8");
    //reader.readAsText(evt.data,"gbk");
    reader.onload = function(e){
    var str=reader.result;
    document.getElementById("myDiv").innerHTML=document.getElementById("myDiv").innerHTML+e.target.result;
    }
    }
    };

    当服务器发送二进制数据频率过快时,流浪器端会丢包(前面的数据接收不到,只接收到最后的数据)。如果服务器端每100ms发一次的话,浏览器就能够完整接收数据。为什么?

    点赞 评论 复制链接分享

相关推荐