2012-05-24 46 views
1

我有這個奇怪的要求,從asp.net應用程序訪問掃描儀,條碼閱讀器,相機等。既然這些都是本地資源,我知道不可能這樣做。我想知道是否有其他解決方案來解決這個問題。訪問掃描器,條形碼,相機與asp.net應用程序

我正在考慮創建一個在本地系統上運行的windows服務,並打開一個端口並聽取它並完成所需的工作。我想知道是否有一種方法可以使用JS或其他庫或activex從asp.net頁面向本地端口發送某種消息。

如果你有完全不同的解決方案,我全部耳朵。

回答

2

我們解決了類似的問題(票據打印機連接到串行端口)通過創建一個小的應用程序(TCL/TK原來,因爲它在Win/Mac/Lin上運行良好,但是自從單聲道長大以來C#/ .NET現在運行良好),即

  • 需要用戶/密碼
  • 使用Web請求創建會話。
  • 打開瀏覽器,
  • 給予在URL中的會話令牌作爲錨(HTTP [秒]://foo.bar/baz X = Y#sessiontoken)

這樣,它是從來沒有通過線路傳輸,但可用於客戶端的JS代碼。該助手應用程序已經啓動瀏覽器

後,它使用長輪詢和會話令牌(已知的瀏覽器和助手應用程序)與網絡服務器進行通信 - 作爲一個客戶端片面應用它可以與peripherial溝通相當自然。

100的印刷這樣的門票1000的的...

編輯: 是的,我知道這一點變得越來越長,但我需要(並要求)進行闡述。

如果你想避免前往該ActiveX/Silverlight的/無論走哪條路線,我強烈建議,需要4名球員:

  1. Web服務器
  2. 瀏覽器
  3. 輔助應用程序( 「代理」)
  4. 設備(票據打印機,條形碼掃描儀,等等)

您的基本問題是,1需要跟4,但不能。所以你選擇了兩條平行的路徑:通信意味着用戶在服務器和瀏覽器之間交換,而通信意味着設備在服務器和代理之間交換,後者將其轉發給設備(反之亦然)。

代理是一個非常簡單的應用程序,它通過操作系統設備與設備進行通信(如何完成這些操作取決於設備),並通過HTTP請求與Web服務器通信。

根據,其上的信息的方向流動,你需要:

  • 爲了便於從設備信息流服務器,只需 對設備觸發一個WebRequest的活動。 (輸入設備,例如條形碼掃描儀)
  • 爲了便於從服務器到設備的信息流動,請使用長輪詢。 (輸出設備,例如票據打印機)
  • 兩個方向一舉兩得(服務器觸發的輸入設備,如攝像頭)

現在剩下的問題是,如何與設備相關的瀏覽器中的人類行爲行動 - 簡而言之:服務器如何將您在您的瀏覽器中選擇的票據發送到您的票證打印機,而不是任何打印機接下來長時間投票。

要解決這個問題,使用會話ID是很自然的事情 - 但它需要瀏覽器和代理都知道相同的會話ID。要做到這一點,你需要將它從一個傳達給另一個。由於您無法將其從瀏覽器傳達給代理(或者這個討論會沒有實際意義),您需要反過來進行溝通 - 並且URL中的錨點是實現這一目標的工具。你做到以下幾點:

  • 用戶啓動代理(!不是瀏覽器),並進入了他的證件
  • 座席的呼叫發送的登錄到服務器的Web請求,並得到回一個會話令牌(請使用一些基本的加密或去HTTPS)
  • 代理,然後啓動瀏覽器(例如,通過執行cmd.exe /c start "http[s]://domain.tld/start.aspx?x=y#sessiontoken"
  • 由於會話令牌是錨,它不會被通過網絡發送,但將提供給瀏覽器的雙面代碼...賓果!
  • 現在兩個parallell路徑是開放的:對人的請求,瀏覽器,知道了會話令牌,並且代理現在正在進入上述模式,
+0

這聽起來很有趣,但我無法遵循你的答案。 – Asdfg

+0

更新我的答案,請耐心等待 –

+0

完成更新答案。 –

0

您可以使用ActiveX來做到這一點,或者Silverlight(或Flash)可以提供有限的支持(至少在我的經驗相機,麥克風和掃描儀)。

但是,鑑於以前的經驗與您嘗試做什麼有關的事情,我會建議您更好地購買一個SDK prebuilt。

成像:

http://www.viscomsoft.com/

條碼:

http://www.tec-it.com/software/barcode-software/tbarcode/barcode-generator/Default.aspx

+0

任何建議什麼樣的SDK的?任何鏈接? – Asdfg

+0

感謝您的更新答案。因爲我有5個外圍設備可以訪問條形碼閱讀器,掃描儀,相機,收銀臺抽屜和打印機,如果我無法找到一個能夠完成所有工作並且成本也會成爲問題的因素,恐怕我可能需要經過許多Sdks。我會嘗試找到某種開源的SDK。 – Asdfg

+0

大多數掃描儀都帶有兩個驅動程序,大多數攝像頭都兼容UVC。您可以搜索twain SDK。他們中的一些人也可以使用照相機和打印機。不確定軟件應用程序如何與收銀抽屜和條形碼閱讀器進行交互。 :) – flysakura

相關問題