基于开源SuperSocket实现客户端和服务端通信项目实战
2018-02-28 15:55
381 查看
摘要
本期带给大家分享的是阿笨在实际工作中遇到的真实业务场景,请跟随阿笨的视角去如何一步步解决WEB网页快速批量打印,如果您对本期的教程内容感兴趣,那么请允许让阿笨带着大家一起学习吧!废话不多说,直接上干货,我们不生产干货,我们只是干货的搬运工。![](http://upload-images.jianshu.io/upload_images/1676984-7987536ce2c08fbd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
你准备好了吗,老夫要开始撸了
一、需求背景介绍
大概是2年以前工作中碰到的一个实际项目,在仓储物流系统中,打印是一个很频繁的操作环节,仓库每天经常需要大批量的在WEB网页上打印功能。比如内部HTML标签、邮递标签(10x10,10x16.5,10x20)、发货清单(A5)以及电池信和发票(A4)以及物流商返回的PDF格式的邮递标签文件,所以打印环节的快慢直接影响仓库操作人员的操作便捷性和仓库的发货效率。1.1、大家都知道WEB网页上打印的过程:一般分为:1、扫描包裹条形码后点击打印按钮=>2、在线弹出打印对话框=>3、选择对应的打印这三个步骤。如果同时打印知识,假如一次性批量打印不同种类的SKU产品条码这种方式极大的繁琐给客户带来不友好的体验。因此我们当时考虑将WEB网页打印方式能不能调整为桌面客户端打印实现,但是为了更好的与现有WEB网页业务系统集成,故又不想重新独立开发出一套客户端打印系统,那么我们能不能开发出一套打印组件,完全与业务逻辑分离只接管打印工作呢?答案是:肯定OK!1.2、WEB网页和WinForm桌面客户端打印的优缺点WEB网页打印方式存在的缺陷:1)、大批量打印SKU产品条码,会经常出现走纸偏移的问题,需要经常人工校验打印走纸;2)、不能同时一次性打印不同规格的纸张,只能单个规格类型的进行打印;等等。。。WinForm桌面客户端打印优势:1)、可以动态的切换本地默认打印机,实现根据配置文件自动匹配打印机无需人工选择,直接将打印默认文件发送指定的打印机;2)、无需像浏览器一样安装单独PDF在线浏览插件,C#有程序的组件专门针对PDF文件格式打印;等等。。。1.3、那么我们今天要解决的问题可以总结为下面的一句话:如何让WEB网页端和桌面客户端进行交互通讯?二、实现原理图
![](http://upload-images.jianshu.io/upload_images/1676984-65229fb6d5033368.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
草稿图
![](http://upload-images.jianshu.io/upload_images/1676984-2a8ca9cc460810bb.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
原理图
三、涉及覆盖的知识点
.NET WebService基本使用技巧;ac5a
WinForm中如何使用WebBroswer浏览器控件进行HTML页面的打印;TCP/IP通讯组件SuperSocket实现服务端向指定的客户端推送(push)消息;服务端crash或者重启后客户端如何实现自动断线重连;如何防止IIS自动回收应用程序进程;Redis消息队列存储用户离线数据实现消息的持久化;
源代码在线演示和解读
作者:阿笨官方QQ群:422315558
![](http://pub.idqqimg.com/wpa/images/group.png)
574187616
![](http://pub.idqqimg.com/wpa/images/group.png)
个人讲师课堂主页:http://study.163.com/provider/2544628/index.htm
个人微信公众号课程主页:http://dwz.cn/ABenNET
相关文章推荐
- 基于开源SuperSocket实现客户端和服务端通信项目实战
- 基于开源SuperSocket实现客户端和服务端通信项目实战
- Android作为客户端,PC作为服务端:实现网络通信
- 实现Socket服务端和客户端即时通信
- 【socket】用PHP的socket实现客户端到服务端的通信
- Android BLE与终端通信(三)——客户端与服务端通信过程以及实现
- NIO实现的服务端与客户端之间的简单通信
- linux网络编程之用socket实现简单客户端和服务端的通信(基于TCP)
- java项目-----客户端与客户端通信--实现群聊功能的代码
- 项目实战之服务端分页的实现——SQL
- AIDL使用详解(三) 客户端通过AIDL与服务端通信 实例项目
- Android作为客户端,PC作为服务端:实现网络通信
- java在线聊天项目0.8版 实现把服务端接收到的信息返回给每一个客户端窗口中显示功能
- [置顶] java 服务端,实现服务端与客户端之间的通信以及客户端之间的通信
- 安卓:service通信,信使实现,客户端和服务端及回传消息的完整版
- RSA客户端(android/ios)与服务端的通信实现
- 基于Delphi实现客户端服务端通信Demo
- Android作为客户端,PC作为服务端:实现网络通信!
- NIO实现的服务端与客户端之间的简单通信
- 实现Android手机(服务端)与PC(客户端)实现通信