项目开发完了,发现部署上的问题逻辑走不通,求大佬指点一下优化方案?

307 天前
 lalalaXxx

环境

后端:springboot JDK8
前端: vue

需求

业务需求是,服务端对接一些硬件设备,体重秤 血压计等... 使用的是串口协议,通过 DB9 转 USB 直接插到电脑上,服务端使用 java 开发的串口协议(rxtx),然后用 Vue 写的客户端去调接口,来操作这些硬件设备;

问题

现在项目所有都已经开发完成了,需要去部署了,才发现一个问题,如果项目部署到云服务器上,客户那边一台电脑 A 所有硬件设备通过 USB 连接电脑 A ,通过浏览器访问的云服务器的页面,这样的话,是不能直接操作硬件设备的;

方案

现在有两种方案
1.从新用 C# c++等语言,从新开发一个 exe 程序,客户拿到程序 安装完成后,每次打开电脑只需要打开应用程序即可操作硬件 (代价太大 需要从新开发,ui 和一些功能)
2.把 java 项目和 Vue 项目打包,去现场把项目装到连接到硬件设备的电脑上,实现操作。
	2.1 问题 1 客户电脑每天关机,从新开机后,还需要重启 java 项目 Nginx 等一些列的操作,就算提供一个 Bat 脚本,依然很复杂,而且客户电脑是 windows 的系统
    2.2 问题 2 客户电脑配置不高,如果运行 jar 和 Vue ,还要装 jdk node nginx 等.... 怕客户那边电脑本来就卡,装完这些 更卡

优化

不知道大佬们有没有遇到过类似的场景,怎么能优化一下;

我的一些想法,把 jdk node nginx 这些环境的东西,都在服务器配置好,然后 Java 项目在客户本地运行,然后如果电脑是从新开机, 通过浏览器页面,如果 java 项目没有启动,在浏览器上让客户点击一个按钮,使用 js 来运行 cmd 命令来启动 java 项目,不知道能不能实现到这个想法;

想法 2: 能不能把 java 项目和 vue 项目,打包成类似 C#或者 c++ 这样的 exe 应用程序,客户那边安装完成后,里面是自带 jdk node 这些环境,安装一次后,下次就是正常启动就可以了,研究了以下 electron 好像做不到这个程度吧,环境还是需要在本地配置好,只是把 web 页面打成了 exe

不知道大佬们有没有什么建议
5909 次点击
所在节点    程序员
47 条回复
QWE321ASD
305 天前
Java 也有库支持串口的.jSerialComm
gaogang
305 天前
@lalalaXxx 第三点的意思,是加一个专门的硬件,串口协议透传成 tcp 流,服务器处理 tcp 流就好了
Felix96
305 天前
@laaaaaa 浏览器环境不能
fuckshiter
305 天前
chrome89 和 firefox 89 以上支持 web 串口吧,用前端来调用串口
Hudiebbk
305 天前
用 golang 开发对接硬件,然后开放对外 api,打包 exe 插件在本机直接启动挂到后台,浏览器根据需求调用对应 api 控制硬件,插件只提供功能接口,不处理业务
sampeng
305 天前
.....为啥是开发完了才发现不对。

友情提示。方案错了。就要按对的去改,不要为了硬头皮而硬头皮,尤其是跟硬件相关的,升级都非常不方便。
但你这个项目其实好改。java 的在云端没毛病,暴露出 api 。
然后 electron 封装 vue 。electron 里面又可以携带 golang/c++/nodejs 任意语言去和串口通信。工作量并不是特别大。只是把 java 实现的再用其他语言再实现一遍。别用 js 的串口库,不是不信任,是擅长的语言干擅长的事。你后面维护是个大坑,js 的人不好招。
julyclyde
305 天前
为啥是开发完了才发现?这团队可以全体开除了吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1018119

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX