目前B/S架构越来越流行,然而在某些行业的企业级应用中,通常会使用一些专业设备。
比如:银行的柜面业务系统前端,通常会涉及指纹仪,扫描仪,高拍仪等等一系列专业设备。
这些设备要跟B/S架构结合起来就涉及浏览器与设备之间的交互,以往通常是依靠IE的ActiveX控件技术,然而对于前端开发而言,IE一直是被人嫌弃的东西,而且现在微软的最新浏览器Edge也已经放弃了对ActiveX的支持,也就是说通过ActiveX与硬件交互的话,只能使用IE11或者更久远的版本。
IE11对ES2015的支持度非常少,已经可以被列为非现代化浏览器了。那么我们既要利用现代化的前端技术栈,又要在企业级的应用在集成专业硬件设备,该如何做呢?
笔者的设想是:
能否将硬件设备在客户端封装成HTTP服务呢? 通过.net技术栈在客户端实现一个Restful服务,这个服务将硬件的接口转换成JS可以调用的HTTP服务,如果想的再深入一点,还应该提供SSE服务或者WebSocket这种,反向的和实时的交互方式,实现全面的硬件交互功能。SSE可以把硬件设备上的事件(比如,设备断开,设备故障)主动推送给页面,而WebSocket可以用在一些数据交互量较大,实时性要求高的场景下。
如果能实现,至少有以下好处:
1.浏览器解耦,不再绑定IE
2.对自动化测试更加友好