文档章节

结合WebSocket,实现远程二维码生成应用

yushulx
 yushulx
发布于 2014/06/24 09:52
字数 314
阅读 247
收藏 4

在上一篇文章中介绍了通过WebSocket实现服务端和客户端的图像传输。基于这个实现,可以把二维码生成器放在服务端,轻松实现远程解决方案。

参考原文:

Barcode Generator with HTML5 WebSocket


准备工作

二维码远程生成

在工程中添加DynamicBarcode.dll,在属性中设置Copy to Output Directory为Copy always,这样dll就会和exe文件在同一个目录下。

添加一张背景图。对收到的消息编码。通过一个接口,生成二维码,并把二维码画到背景图上。

float scale = 3;
short sImageIndex = 0;
dynamicDotNetTwain.MaxImagesInBuffer = 1;
bool isLoaded = dynamicDotNetTwain.LoadImage("test.png");
dynamicDotNetTwain.AddBarcode(sImageIndex, Dynamsoft.DotNet.TWAIN.Enums.Barcode.BarcodeFormat.QR_CODE, message, "", 0, 0, scale);
 

现在把二维码发送到客户端。发送两次消息,第一次为宽高信息,第二次为图像数据。基于之前的JavaScript代码,简单修改一下。

ws.onmessage = function (evt) {
     var data = evt.data;
     if (!data)
         return;
 
     if (data instanceof ArrayBuffer) {
         drawImage(evt.data);
     }
     else {
         var len = data.length;
         var index = data.indexOf(",");
         var w = data.substring(0, index);
         var h = data.substring(index + 1, len);
         imageWidth = parseInt(w);
         imageHeight = parseInt(h);
     }
 };
 

现在二维码就可以在网页中显示出来了。

本文转载自:http://www.codepool.biz/tech-frontier/html5/barcode-generator-with-html5-websocket.html

共有 人打赏支持
yushulx
粉丝 25
博文 96
码字总数 55160
作品 0
杭州
私信 提问
Jetty源码学习9-WebSocket

引言 通过NIO+Continunation+HttpClient可以使Jetty具有异步长连接的功能,但有些应用场景确需要服务器“推”的功能,比如说:聊天室、实时消息提醒、股票行情等对于实时要求比较高的应用,能...

项籍20130121
2013/03/11
0
1
WebSocket使用教程 - 带完整实例

什么是WebSocket?看过html5的同学都知道,WebSocket protocol 是HTML5一种新的协议。它是实现了浏览器与服务器全双工通信(full-duplex)。HTML5定义了WebSocket协议,能更好的节省服务器资源...

james_laughing
2014/12/18
0
7
WebSocket协议详解及应用

https://blog.csdn.net/u014520745/article/details/52639452 WebSocket协议详解及应用(一)-初识WebSocket 一、什么是WebSocket WebSocket是一个允许Web应用程序(通常指浏览器)与服务器进行双...

徐风来
2018/10/25
0
0
(websocket)协议中Ping Pong,长连接

- websocket协议,长连接;Http短连接 WebSocket如何建立连接、交换数据的细节,以及数据帧的格式。 WebSocket复用了HTTP的握手通道。具体指的是,客户端通过HTTP请求与WebSocket服务端协商升...

desaco
2018/12/25
0
0
【转载】使用 HTML5 WebSocket 构建实时 Web 应用

作为下一代的 Web 标准,HTML5 拥有许多引人注目的新特性,如 Canvas、本地存储、多媒体编程接口、WebSocket 等等。这其中有“Web 的 TCP ”之称的 WebSocket 格外吸引开发人员的注意。WebSo...

长平狐
2012/09/06
280
0

没有更多内容

加载失败,请刷新页面

加载更多

多表查询

第1章 多表关系实战 1.1 实战1:省和市  方案1:多张表,一对多  方案2:一张表,自关联一对多 1.2 实战2:用户和角色 (比如演员和扮演人物)  多对多关系 1.3 实战3:角色和权限 (比如...

stars永恒
21分钟前
0
0
求推广,德邦快递坑人!!!!

完全没想好怎么来吐槽自己这次苦逼的德邦物流过程了,只好来记一个流水账。 从寄快递开始: 2019年1月15日从 德邦物流 微信小app上下单,截图如下: 可笑的是什么,我预约的是17号上门收件,...

o0无忧亦无怖
昨天
4
0
Mac Vim配置

1.升级 vim   我自己 MacBook Pro 的系统还是 10.11 ,其自带的 vim 版本为 7.3 ,我们将其升至最新版: 使用 homebrew : brew install vim --with-lua --with-override-system-vim 这将下...

Pasenger
昨天
6
0
vmware安装Ubuntu上不了网?上网了安装不了net-tools,无法执行ifconfig?

1.重新设置网络适配器还是不行,如下指定nat 2.还需要指定共享网络,我是在无线环境下 3.无法执行ifconfig https://packages.ubuntu.com/bionic/net-tools到这个网站下载net-tools的deb文件...

noob_chr
昨天
3
0
解决SVN:E210007无法协商认证机制

svn:E210007 svn: Cannot negotiate authentication mechanism 执行下面代码即可 sudo yum install cyrus-sasl cyrus-sasl-plain cyrus-sasl-ldap...

临江仙卜算子
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部