http://blog.csdn.net/kkkkk4400/article/details/16980647
今天想实现一个在firefox中使用websocket接收二进制图片并显示的功能。百度了半天..一堆人都说用MozBlobBuilder
,可尼玛我的firefox游览器中就没这个对象!!版本(25.0.1)
回想一年前想实现用websocket实现模仿C++接收二进制并操作的时候,百度google上一堆人还说“js是不能实现二进制操作的”,我就开始火大了。都什么鸟玩意儿??百度上什么时候出现的那么多坑货来坑人的? 搞JS的牛人都去哪了?
实在受不了,发篇博客希望后者百度再想实现类似功能的时候不要再那么累了。
贴上代码 供参考:
JS操作websocket接收的二进制,安全性能有保障,已经过一年实践考验:
- ws.onmessage = function(evt) {
- if(typeof(evt.data)=="string"){
- textHandler(JSON.parse(evt.data));
- }else{
- var reader = new FileReader();
- reader.onload = function(evt){
- if(evt.target.readyState == FileReader.DONE){
- var data = new Uint8Array(evt.target.result);
- handler(data);
- }
- }
- reader.readAsArrayBuffer(evt.data);
- }
- };
- function handler(data){
- switch(data[0]){
- case 1:
- getCard(data[1]);
- break;
-
- ...
JS操作websocket接收的图片,今天刚写的,也是用filereader实现。
- ws.onmessage = function(evt) {
- if(typeof(evt.data)=="string"){
- //textHandler(JSON.parse(evt.data));
- }else{
- var reader = new FileReader();
- reader.onload = function(evt){
- if(evt.target.readyState == FileReader.DONE){
- var url = evt.target.result;
- alert(url);
- var img = document.getElementById("imgDiv");
- img.innerHTML = "<img src = "+url+" />";
- }
- }
- reader.readAsDataURL(evt.data);
- }
- };
最后想说.看了那么多JS达人的博客,那么多转摘的文章,请问转摘之前自己实践过么?知道自己转的文章是正确的么??
我平时搞ERLANG 搞C 搞JAVA,偶尔才写一点JS小代码还被坑成这样,真心难受。