我有一个运行的Web应用程序,支持某些特定的硬件。这可以通过以下步骤实现:
这很有效,但看起来很笨重。关于如何改进,我有几点想法,但我不知道哪些,甚至值得尝试。
将hardwareManager设置为socketServer并让applet直接连接到它而不是通过文本文件会更好吗?这甚至可能吗?
有没有办法完全消除applet并让javascript直接与hardwareManager对话?也许通过将hardwareManager编写为本地http服务器?它应该运行什么端口?这个地方的javascript xss限制是否合适?
答案 0 :(得分:2)
使用Java Web Start启动Java应用程序不那么笨拙。这将消除守护或安装Java硬件管理器的需要。
另一种选择是在Java中使用内置浏览器。我认为这不是一个选项,因为你严重依赖Javascript(我想提供丰富的客户端体验)。
如果您必须在客户端计算机上安装某些内容,为什么选择使用Web应用程序?
根据经验谈话:我们有一个Java EE应用程序需要在客户端站点打印到PoS打印机。我们安装了一个小的“同步器”应用程序,它通过SSH连接并同步所有客户端文件。然后,它加载JAR并执行程序。此程序通过RMI与服务器连接,并订阅JMS队列以接收打印分配。
适用于您的案例:为什么不让您的Java应用程序直接连接到服务器?您可以在RMI上使用HTTP,SOAP甚至JMS。然后,您可以从服务器(而不是从有限的JavaScript webbrowser环境)启动硬件命令。通过这种方式,您可以获得大量功能:身份验证,命令缓冲,甚至可以在多个客户端之间共享硬件。
示意图:
<----AJAX------> Web browser
ApplicationServer
<---HTTP/SOAP--> Java hardware manager application
您可以使用Java Web Start启动Java应用程序,它允许您自动更新应用程序(而不是需要为每个客户端传递新的安装程序)。