尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

如何部署 roslibjs 生产环境:5 步完成 ROS Web 应用上线

如何部署 roslibjs 生产环境:5 步完成 ROS Web 应用上线 如何部署 roslibjs 生产环境5 步完成 ROS Web 应用上线【免费下载链接】ta_PP-OCRv5_mobile_rec_onnx项目地址: https://ai.gitcode.com/paddlepaddle/ta_PP-OCRv5_mobile_rec_onnxroslibjs 是跑在浏览器里的 ROS 通信库你的 Web 应用靠它收发消息、调用服务。把这套东西部署到生产环境要串起构建、rosbridge 网关、静态托管三件事。下面按上线顺序给出每一步的命令以及每步的成功信号做完就能把应用从本地推到线上。 先看清链路浏览器、rosbridge 网关与 ROS 节点动手配置之前先把三方关系理顺。链路上有三个角色你的浏览器、rosbridge_server、ROS 节点。roslibjs 是浏览器端的遥控器用户点一下订阅话题或调用服务发出去的都是 WebSocket 消息rosbridge 是中间的翻译网关负责把 WebSocket 协议和 ROS 消息互相对接另一头的节点只认 ROS 的话题和服务。所以部署的重点不是页面本身而是把浏览器到 9090 端口的这条 WebSocket 链路走通构建产物、启动网关、指好托管、验通连接。开跑前确认表环境、依赖、网关三件套动手前把这张表过一遍任何一行没打勾都是隐患检查项要求验证方式Node.js18.x 或更高node -v包管理器npm 或 yarnnpm -vROS 环境ROS 1 或 ROS 2 任一版本要与 rosbridge 匹配终端查看 ROS 版本rosbridge_server已安装下一节的启动命令能跑通项目依赖npm install无报错终端无报错输出 构建生产包顺手把 9090 打通克隆仓库、装依赖git clone https://gitcode.com/paddlepaddle/ta_PP-OCRv5_mobile_rec_onnx cd ta_PP-OCRv5_mobile_rec_onnx npm install构建走 Vite参数在 packages/roslib 下的vite.config.ts里已经定好构建目标 Node.js 18输出 ES 模块产物落在distcd packages/roslib npm run build # 构建库本体 cd ../roslib-examples npm run build # 构建示例应用如部署示例成功信号dist里出现 js、html 产物构建日志无 error 行。接着按你用的 ROS 版本启动网关# ROS 1 roslaunch rosbridge_server rosbridge_websocket.launch # ROS 2 ros2 launch rosbridge_server rosbridge_websocket_launch.xmlrosbridge 默认在 9090 端口开 WebSocket 服务。怎么算通了终端执行curl -v http://localhost:9090收到 400 响应而不是 connection refused说明端口在监听也可以用ss -lntp | grep 9090确认进程。 Nginx 托管静态页面回退与跨域两个要点roslibjs 的构建产物是纯静态站任何静态托管都能跑云厂商的静态托管直接传dist即可。这一节只把 Nginx 讲透三个要点root指到distSPA 路由用try_files兜底刷新不 404加 CORS 头放行跨域通信。server { listen 80; server_name your-domain.com; root /path/to/roslibjs/packages/roslib-examples/dist; location / { try_files $uri $uri/ /index.html; # SPA 回退 } add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Methods GET, POST, OPTIONS; add_header Access-Control-Allow-Headers Content-Type; }nginx -s reload之后浏览器打开域名能加载页面刷新任意子路由都落在index.html而不是 404就算配对了。连通性验证看到哪几行才算成功验证顺序先起 ROS 核心再起 rosbridge然后浏览器打开应用看控制台最后试功能。浏览器端代码就这几行const ros new ROSLIB.Ros({ url: ws://your-bridge-host:9090 }); ros.on(connection, () console.log(Connected to ROS bridge server)); ros.on(error, (e) console.log(Error:, e)); ros.on(close, () console.log(Connection closed));成功信号很具体控制台打印出Connected to ROS bridge server且没有 error 事件跟上来再订阅一个已知话题能收到消息整条链路才算真正跑通。连不上时先查这三处rosbridge 没真正起来或端口不是 9090。回看启动日志。防火墙或云安全组拦了 9090。先在本机curl排除应用层问题。页面是 https连接却写ws://。浏览器按混合内容直接拦截改成wss://。安全加固上线前逐项过一遍功能跑通后上线前把这几项过一遍HTTPS wss配好 SSL/TLS连接改为wss://报文在链路上不可见。访问限制防火墙层面限制能访问 9090 的机器rosbridge 配置里再限制连接数。鉴权启用 rosbridge 的身份验证机制用 API 密钥或令牌挡住匿名连接。输入校验前端严格校验用户输入别让脏数据进到 ROS 系统里。顺带保持 roslibjs 和依赖库更新已披露的漏洞随出随修。✅ 上线检查清单Node.js 18.x 以上npm install无报错dist产物齐全本地能打开示例页ROS 核心与 rosbridge 已启动9090 在监听Nginx 配了try_files回退和 CORS 头页面走 HTTPS连接走wss://rosbridge 开了鉴权限制了连接数前端对用户输入做了校验全部勾掉就可以上线了。想再深入输出格式、目标版本这类构建参数都在vite.config.ts里可调类型编译行为则看 packages/roslib 下的tsconfig.json。【免费下载链接】ta_PP-OCRv5_mobile_rec_onnx项目地址: https://ai.gitcode.com/paddlepaddle/ta_PP-OCRv5_mobile_rec_onnx创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表