Have you ever tried to connect a web application to some specific hardware ? You may have succeeded in localizing a client device through its GPS chip or activating its web cam… as modern browsers are designed to include those functionalities. But what about directly printing on a USB connected printer, or operating and controlling a peripheral connected on the serial port (LCD display, electronic weighting machine, etc…) ?
Probably not since the content of a web page, by definition, is not supposed to have to access the hardware used to display it. This is the foundation of partitioning and security in the WWW. And that’s precisely where EveConnector becomes its own revolution.
Once you have installed EveConnector on a computer all the registered web applications that support it are ready to operate, control, read from and write to your peripherals in “raw” mode.
But how does EveConnector work in practice ? It’s a WebSocket bridge that any authorized web page can access at a configured URL (for example wss://localhost:12345/). A communication channel to a specific peripheral can then be opened by specifying its connexion type (USB, serial, etc.) and its identifier on the system (for USB devices it’s the vendor_id and device_id). Once the communication is established, the web page can interact (read and write) with the peripheral in “raw” mode…
Let’s take an example : our software e-venement is running in the browser and needs to know which printers are actually connected on the system USB ports among the ones it “knows about” (in our case: BOCA and STAR printers). It prompts EveConnector for the information and then generates a suitable RAW file using wkhtmltopdf, CUPS and the CUPS drivers of the available printers. The file is sent to the printer by EveConnector through a WebSocket connexion. And finally e-venement asks EveConnector to collect the printer return codes that will be interpreted and processed internally.