我用if(e) alert(‘abc’)判断e里面什么也没接受到 但是服务器给我发 字符串 或者base64 都可以接收到这是为什么 难道websocket不支持接收 二进制数据吗 还是 我接收的方式不对。
2进制数据用ws.rQshiftStr方法
http://www.douban.com/group/topic/27675503/
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发一次的话,浏览器就能够完整接收数据。为什么?
看下这个完整的例子
http://download.csdn.net/detail/ghpan/7889015
服务器是java,客户端是js?难道你服务器也是js?