关于如何使用websocket 接收并显示图片或者操作二进制

今天想实现一个在firefox中使用websocket接收二进制图片并显示的功能。百度了半天..一堆人都说用MozBlobBuilder,可尼玛我的firefox游览器中就没这个对象!!版本(25.0.1)

回想一年前想实现用websocket实现模仿C++接收二进制并操作的时候,百度google上一堆人还说“js是不能实现二进制操作的”,我就开始火大了。都什么鸟玩意儿??百度上什么时候出现的那么多坑货来坑人的? 搞JS的牛人都去哪了?

实在受不了,发篇博客希望后者百度再想实现类似功能的时候不要再那么累了。

贴上代码 供参考:

JS操作websocket接收的二进制,安全性能有保障,已经过一年实践考验:


[javascript]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. ws.onmessage = function(evt) {  
  2.     if(typeof(evt.data)=="string"){  
  3.         textHandler(JSON.parse(evt.data));  
  4.     }else{  
  5.         var reader = new FileReader();  
  6.         reader.onload = function(evt){  
  7.             if(evt.target.readyState == FileReader.DONE){  
  8.                 var data = new Uint8Array(evt.target.result);  
  9.                 handler(data);  
  10.             }  
  11.         }  
  12.         reader.readAsArrayBuffer(evt.data);  
  13.     }  
  14. };    

[html]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. function handler(data){  
  2.     switch(data[0]){  
  3.     case 1:  
  4.         getCard(data[1]);  
  5.         break;  
  6.   
  7. ...  

JS操作websocket接收的图片,今天刚写的,也是用filereader实现。

[html]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. ws.onmessage = function(evt) {  
  2.     if(typeof(evt.data)=="string"){  
  3.         //textHandler(JSON.parse(evt.data));  
  4.     }else{  
  5.   var reader = new FileReader();  
  6.         reader.onload = function(evt){  
  7.             if(evt.target.readyState == FileReader.DONE){  
  8.                 var url = evt.target.result;  
  9.     alert(url);  
  10.                 var img = document.getElementById("imgDiv");  
  11.     img.innerHTML = "<img src = "+url+" />";  
  12.             }  
  13.         }  
  14.         reader.readAsDataURL(evt.data);  
  15.     }  
  16. };    

最后想说.看了那么多JS达人的博客,那么多转摘的文章,请问转摘之前自己实践过么?知道自己转的文章是正确的么??

我平时搞ERLANG 搞C 搞JAVA,偶尔才写一点JS小代码还被坑成这样,真心难受。

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值