目前B/S架構(gòu)越來越流行惦蚊,然而在某些行業(yè)的企業(yè)級(jí)應(yīng)用中器虾,通常會(huì)使用一些專業(yè)設(shè)備。
比如:銀行的柜面業(yè)務(wù)系統(tǒng)前端蹦锋,通常會(huì)涉及指紋儀兆沙,掃描儀,高拍儀等等一系列專業(yè)設(shè)備莉掂。
這些設(shè)備要跟B/S架構(gòu)結(jié)合起來就涉及瀏覽器與設(shè)備之間的交互葛圃,以往通常是依靠IE的ActiveX控件技術(shù),然而對(duì)于前端開發(fā)而言,IE一直是被人嫌棄的東西库正,而且現(xiàn)在微軟的最新瀏覽器Edge也已經(jīng)放棄了對(duì)ActiveX的支持曲楚,也就是說通過ActiveX與硬件交互的話,只能使用IE11或者更久遠(yuǎn)的版本褥符。
IE11對(duì)ES2015的支持度非常少龙誊,已經(jīng)可以被列為非現(xiàn)代化瀏覽器了。那么我們既要利用現(xiàn)代化的前端技術(shù)棧喷楣,又要在企業(yè)級(jí)的應(yīng)用在集成專業(yè)硬件設(shè)備趟大,該如何做呢?
筆者的設(shè)想是:
能否將硬件設(shè)備在客戶端封裝成HTTP服務(wù)呢铣焊? 通過.net技術(shù)棧在客戶端實(shí)現(xiàn)一個(gè)Restful服務(wù)逊朽,這個(gè)服務(wù)將硬件的接口轉(zhuǎn)換成JS可以調(diào)用的HTTP服務(wù),如果想的再深入一點(diǎn)曲伊,還應(yīng)該提供SSE服務(wù)或者WebSocket這種叽讳,反向的和實(shí)時(shí)的交互方式,實(shí)現(xiàn)全面的硬件交互功能坟募。SSE可以把硬件設(shè)備上的事件(比如岛蚤,設(shè)備斷開,設(shè)備故障)主動(dòng)推送給頁面懈糯,而WebSocket可以用在一些數(shù)據(jù)交互量較大灭美,實(shí)時(shí)性要求高的場(chǎng)景下。
如果能實(shí)現(xiàn)昂利,至少有以下好處:
1.瀏覽器解耦,不再綁定IE
2.對(duì)自動(dòng)化測(cè)試更加友好