文档章节

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

yushulx
 yushulx
发布于 2014/06/24 09:52
字数 314
阅读 240
收藏 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
博文 90
码字总数 50733
作品 0
杭州
WebSocket使用教程 - 带完整实例

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

james_laughing
2014/12/18
0
7
Jetty源码学习9-WebSocket

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

项籍20130121
2013/03/11
0
1
漫扯:从polling到Websocket

Http被设计成了一个单向的通信的协议,即客户端发起一个request,然后服务器回应一个response。这让服务器很为恼火:我特么才是老大,我居然不能给小弟发消息。。。 轮询   老大发火了,小...

i33
2014/08/01
0
0
HTML5的Websocket(理论篇 I)

先请来TA的邻居: http:无状态、基于tcp请求/响应模式的应用层协议 (A:哎呀,上次你请我吃饭了么? B:我想想, 上次请你吃了么)tcp:面向连接、保证高可靠性(数据无丢失、数据无失序、数据无...

a独家记忆
06/23
0
0
springboot之websocket

  一、WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端。   二、长久以来, 创建实现客户端和用户端之间双...

小不点丶
05/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

面向对象设计原则(OOP)

单一职责原则(Single responsibility principle)又称单一功能原则。它规定一个类应该只有一个发生变化的原因。 核心原则:低耦合,高内聚。 一个类,应该只有一个引起它变化的原因,也就是...

gackey
29分钟前
2
0
C++ 锁

C++提供了两种常用的锁,std::lock_guard<Lockable &T>和std::unique_lock<Lockable &T>。通常使用场景下,这两个锁用法一致。即,在构造锁对象时上锁,在析构锁对象时解锁。使用户从上锁/解...

yepanl
32分钟前
2
0
Kali Linux Docker 練習

docker pull kalilinux/kali-linux-docker docker run -t -i kalilinux/kali-linux-docker /bin/bash apt-get update apt-get install htop apt-get install nmap apt-get install wpscan ap......

BaiyuanLab
今天
2
0
通俗大白话来理解TCP协议的三次握手和四次分手

最近在恶补计算机网络方面的知识,之前对于TCP的三次握手和四次分手也是模模糊糊,对于其中的细节更是浑然不知,最近看了很多这方面的知识,也在系统的学习计算机网络,加深自己的CS功底,就...

onedotdot
今天
2
0
TiDB 在爱奇艺的应用及实践

爱奇艺,中国高品质视频娱乐服务提供者,2010 年 4 月 22 日正式上线,推崇品质、青春、时尚的品牌内涵如今已深入人心,网罗了全球广大的年轻用户群体,积极推动产品、技术、内容、营销等全方...

TiDB
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部