[問題]Websocket應用於讀卡機疑問

看板java作者 (72727)時間8年前 (2016/03/28 11:20), 8年前編輯推噓5(5043)
留言48則, 9人參與, 最新討論串1/1
小的最近因為工作要求要去了解讀卡機的程式 目標是能夠用於雲端管理系統前置的讀卡作業 帶出卡片資訊 帶入持有者卡片相關資料和系統作業 沒想到越看頭越炸 因為發現似乎限制和問題要處理很多 以早期常見的處理方式建置java applet 因為Web 雲端管理系統本身就具備跨瀏覽器和不同OS系統(MAC..)的要求 所以假如以走早期的方式 會變成還要注意 1.客戶端的java版本 2.32 or 64 位元問題 3.讀卡機本身的驅動起碼也要能支援MAC.. 4.applet 簽證被甲骨文惡搞要錢... 林林總總很多狀況 後來焦頭爛耳之際認識的資深工程師跟我提了(Spring) WebSocket這個方式 小弟去找到了http://gca.nat.gov.tw/download/ndc_meeting.pdf 然後追到去憑證管理中心抓了範例程式來看 發現似乎政府本身也只是初期做一做樣子而已 請問一下各位先進 是否有人能提點一下 小弟的以下問題: 1.websocket技術用於讀卡機是否就是使用者只要上瀏覽器 再連接讀卡機直接就可以直接讀取卡片? 2.這個技術需要讀卡機具備什麼? 因為小弟以前從來沒有接觸這個領域相關的技術應用,都在寫spring框架相關全端開發 純粹就只是個比較會種田的碼農,問了什麼太蠢的內容請多包涵O_O -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 175.96.228.94 ※ 文章網址: https://www.ptt.cc/bbs/java/M.1459135239.A.EA1.html

03/28 12:57, , 1F
webscoket 用TCP 開讀卡機?
03/28 12:57, 1F

03/28 12:57, , 2F
有點仙呢.
03/28 12:57, 2F

03/28 13:03, , 3F
簡單來說這個作法是要使用者裝client端程式,在client電腦
03/28 13:03, 3F

03/28 13:04, , 4F
上開一個web/websocket server,然後網頁連localhost
03/28 13:04, 4F

03/28 13:04, , 5F
去作業,因為現在的潮流是browser不給外掛
03/28 13:04, 5F

03/28 13:06, , 6F
讀卡機沒差,client端程式用一般client端作法去連讀卡機
03/28 13:06, 6F

03/28 13:08, , 7F
你找到的資料說的Websocket API是憑證中心的那個程式中的
03/28 13:08, 7F

03/28 13:08, , 8F
localhost server要開的API,不是有個標準API
03/28 13:08, 8F

03/28 13:09, , 9F
也沒有一定要用websocket,http也可以做
03/28 13:09, 9F
謝謝回覆 那麼假如我需要最簡單化的能夠讓client端user進入網頁後就能夠在client端 讀卡機取得資訊和系統頁面介接發送資訊去後台 是否有甚麼關鍵字可以參考 ※ 編輯: darkness0727 (175.96.228.94), 03/28/2016 13:50:46

03/28 15:54, , 10F
果然是個好主意,有趣.
03/28 15:54, 10F

03/28 19:09, , 11F
跟讀卡機溝通就沒辦法了
03/28 19:09, 11F

03/30 13:43, , 12F
網頁URL是遠端, 然後websocket讀本地端, 可以這樣做嗎?
03/30 13:43, 12F

03/30 13:44, , 13F
JS 不是不能跨網域嗎?
03/30 13:44, 13F

03/30 15:07, , 14F
http可以設定CORS header就可以跨網域
03/30 15:07, 14F

03/30 15:09, , 15F
websocket沒有限制,只是browser會傳origin header由server
03/30 15:09, 15F

03/30 15:10, , 16F
檢查,兩種最終都是由server(本地端這個)決定給不給連
03/30 15:10, 16F

03/30 15:14, , 17F
當然要怎麼決定呼叫者合不合法就是很大的問題
03/30 15:14, 17F

03/30 15:20, , 18F
原po的問題,基本上網頁沒有任何直接跟讀卡機通訊的方法
03/30 15:20, 18F

03/30 15:27, , 19F
瀏覽器不提供的功能,最終都是要在client裝程式自己做,只
03/30 15:27, 19F

03/30 15:28, , 20F
差在安裝的方式、網頁與程式通訊的方式
03/30 15:28, 20F
正如ssccg大所說 目前我是執行到利用https://tyrus.java.net/ 這個websocket方案在client端啟動執行 一隻讀取卡片的程式(目前只跑讀取健保卡基本資料) 目前已經本地端測試是可以運作 但是後面應該如ssccg大所說還要排除跨域和驗證等問題 這種做法似乎能組合的是用Java Web Start去驅動這個包起來的小型伺服器程式 不過接下來沒繼續實作包起來的部分了 因為工作上讀卡的目標難以確認要到甚麼程度(看著遠方) 慘一點會需要連大陸的醫保卡 社保卡都要能讀取 或者是要進入醫療的規範還要跟醫事卡 等等的做更複雜的讀卡設計 不過就是因為太複雜很多都沒法確定是不是有這個需求 要執行與否 這幾天team的討論決議後 目前還是先以最單純的applet+讀基本資料就好(雖然我覺得不單純 以現在的趨勢) 謝謝各位先進的回答 小弟嘗試過後也對於為何大部分連接硬體設施讀卡的軟體系統平台大多是用桌上型開發 有比較深的理解 ※ 編輯: darkness0727 (223.139.150.212), 03/30/2016 17:14:06

03/30 19:57, , 21F
瀏覽器外掛作法網頁開了直接裝,比較單純,缺點是快要被淘
03/30 19:57, 21F

03/30 19:58, , 22F
汰了還有在行動裝置不能用
03/30 19:58, 22F

03/30 23:30, , 23F
MOBILE裝置 讀自然人憑證?
03/30 23:30, 23F
沒有要到mobile那麼仙喔 Lordaeron大

03/31 20:22, , 24F
健保卡?
03/31 20:22, 24F

03/31 20:23, , 25F
給你個建議 如果你們採用JAVA APPLET 網頁的操作將會
03/31 20:23, 25F

03/31 20:24, , 26F
被健保卡讀取速度箝制,等於在讀健保卡期間將無法做任
03/31 20:24, 26F

03/31 20:24, , 27F
操作(等於HAND住 醫生會很火大) 你們需要克服這點
03/31 20:24, 27F

03/31 20:25, , 28F
就我所知目前較佳解法已如上面大大所述 ,這樣你可以
03/31 20:25, 28F

03/31 20:25, , 29F
邊讀寫卡,邊做網頁操作(讓USER感覺很SMOOTH)
03/31 20:25, 29F

03/31 20:27, , 30F
我們有失敗經驗,你們可以借鏡....
03/31 20:27, 30F

03/31 23:40, , 31F
我比較不明白的是, 為何考慮到行動裝置用?
03/31 23:40, 31F

04/01 00:04, , 32F
行動裝置也是可以,不過要看讀卡機走usb or 藍芽 or 音頻
04/01 00:04, 32F

04/01 00:04, , 33F
接口
04/01 00:04, 33F

04/01 02:00, , 34F
行動裝置只是順便提一下,這也是外掛越來越少用的原因之一
04/01 02:00, 34F
小的講的更明白些好了 基本上小弟查詢後發現applet作法的確不是最好的處理方式 以現在的潮流而言 這個也是步入淘汰的作法 從政府開始要改善就知道了 本身是打算寫兩個方案 一個是拿來報告應付用的applet 單純讀健保卡基本資料 因為後續要更進階要考量很多實務上的經驗 但是我們團隊還沒有很好的領航者 另外一個就是在這次研究過程想實踐的微型web socket server包在java web start內 當然ssccg大提到的http server也有概念些 小的也有去跟在網路上找到的"養鴨宗師"了解了一下方向(應該大致上沒錯) 總而言之 假如小弟參與的是一個桌上型的java整合硬體應用專案 應該在這方面的問題就沒那麼複雜 這也是大多醫院所內部系統不雲端化的主因之一 小的先前並無在醫療相關體系有工作經驗 這次的經歷起碼讓我知道 1.java applet對於開發者的困擾 2.java web start的概念 3.現今大多瀏覽器停止applet後對於部分產業的影響 4.為何國內還是一堆IE only讀卡 此外另外提一個很有趣的論點 在大陸地區寫這種整合讀卡的內部醫療(HIS等)系統 整理而來的大多還是不會用java開發 似乎跟穩定性和介面複雜度有關 這沒有貶低java的意思 是在大陸一個醫思論壇整理得來得資訊 那兒的同胞似乎覺得用java開發出一個桌上型醫療管理系統是非常神奇的事情XD ※ 編輯: darkness0727 (175.96.230.73), 04/01/2016 11:42:24

04/01 14:19, , 35F
web 跟card reader 溝通, 要是哪堆什麼XXAPI不能用了
04/01 14:19, 35F

04/01 14:20, , 36F
哪只好就SOCKET囉, 不然得用專用BROWSER. BUT...
04/01 14:20, 36F

04/01 14:20, , 37F
像自然人憑證,還要CHT 幫忙才行. 但搞哪麼多,要不要考
04/01 14:20, 37F

04/01 14:21, , 38F
直接APP 做就好, 搞個不三不四. 另外APPLET SIGN 我
04/01 14:21, 38F

04/01 14:21, , 39F
記得不用錢啊.
04/01 14:21, 39F

04/01 14:26, , 40F
致於像now99講的, 真的來個行動裝置讀卡, 感覺得手機寫
04/01 14:26, 40F

04/01 14:26, , 41F
論文一樣的無言.
04/01 14:26, 41F

04/02 21:59, , 42F
客戶端領域的確不是java的強項
04/02 21:59, 42F

04/03 21:47, , 43F
科科
04/03 21:47, 43F

04/08 01:55, , 44F
純ms平台讀取資源,java其實多一層,不如用c#
04/08 01:55, 44F

04/08 01:56, , 45F
而且你不是要雲端嘛,怎麼後面敘述是桌上型.
04/08 01:56, 45F

04/08 01:58, , 46F
桌上型swt掛瀏覽器+java card組合用就好
04/08 01:58, 46F

04/08 11:53, , 47F
內部醫療系統大多是桌上型開發 頗少用JAVA寫
04/08 11:53, 47F

04/08 11:53, , 48F
沒有雲端跳Tone桌上型的意思
04/08 11:53, 48F
文章代碼(AID): #1M-AC7wX (java)