发现 Realtime Location Tracker:开源 PWA,实现实时设备监控与通信
发布: (2026年1月2日 GMT+8 04:08)
5 min read
原文: Dev.to
Source: Dev.to
介绍
如果你热衷于构建涉及定位服务、实时通信或类似物联网跟踪的应用,请了解 Realtime Location Tracker,这是由 Mahmud Rahman 创建的开源渐进式网页应用(PWA)(GitHub: mahmud-r-farhan)。该应用允许你实时监控和跟踪已连接的设备,提供交互式地图、即时消息和语音通话功能——适用于车队管理、配送应用、团队协作或个人安全工具。
关键使用场景
- 车队管理和配送跟踪
- 现场团队协作
- 与朋友/家人共享个人位置
- 紧急响应系统
突出功能
实时追踪
- 持续的 GPS 更新在 Leaflet 地图上可视化。
- 设备以标记形式出现,弹出详情(电池电量、平台、连接状态)。
设备管理
- 自动设备识别、自定义图标以及连接面板,用于监控所有活跃用户。
通信工具
- 实时聊天 基于 WebSockets(Socket.IO)——发送消息并点击可缩放至发送者位置。
- 实时音频通话 通过 WebRTC,包括向所有用户广播的“扩音器”模式。
- 紧急 SOS(v4.0+):长按按钮发送包含 GPS 坐标、电池信息、IP 地理位置等的警报。接收者会收到音频警报、振动(移动端)以及浏览器通知。
PWA 功能
- 可安装、离线支持(带回退页面)、service‑worker 缓存、自动更新以及推送通知。
活动日志
- 服务器端记录连接、断开和事件日志。
地理围栏与智能监控
- 电池警报以防止断线。
- 基于位置的触发使用地理围栏。
响应式 UI
- 暗/亮主题、直观的悬浮操作按钮(FAB)以及跨设备兼容性。
技术栈
| 层 | 技术 |
|---|---|
| 后端 | Node.js (v18+), Express.js |
| 实时通信 | Socket.IO |
| 地图 | Leaflet 与 OpenStreetMap(支持离线地图) |
| 音频 | WebRTC(点对点) |
| 前端 | HTML, CSS, JavaScript, EJS templates |
| PWA 基础 | Web App Manifest, Service Worker |
| 部署 | Docker, Docker Compose |
| 工具 | npm, Git, GitHub Actions |
该项目使用原生 JavaScript 以及针对性的库,保持轻量且易于扩展。
设置指南
克隆仓库
git clone https://github.com/mahmud-r-farhan/Realtime-Location-Tracker.git
cd Realtime-Location-Tracker
安装依赖
npm install
本地运行应用
npm start
在浏览器中打开 http://localhost:3007,授予位置权限,然后开始跟踪。
使用 Docker 进行生产部署
docker build -t realtime-location-tracker .
docker run -p 3007:3007 realtime-location-tracker
或使用 Docker Compose:
docker-compose up -d
测试实时功能
在多个浏览器或设备中打开应用,邀请其他人加入,授予位置访问权限,即可在地图上看到更新。
演示与资源
- 实时演示:(建议多人同时使用以获得最佳体验)
- 演示视频: 观看演示 (来自 Mahmud 的 LinkedIn 帖子的链接)
- 截图: 位于仓库的
public/assets/文件夹中
贡献
- 查看
CONTRIBUTING.md以获取指南。 - 遵循
CODE_OF_CONDUCT.md。 - 通过
SECURITY.md报告安全问题。 - 提交包含测试并符合核心技术栈的拉取请求。
结论
实时位置追踪器展示了开源如何推动追踪和通信技术的创新。它为学习 WebSockets、WebRTC、PWA 和基于位置的应用提供了坚实的基础,同时也提供了实际的定制潜力(例如,地理围栏、物联网集成)。
如果您感兴趣,请在 GitHub 上给仓库加星: , fork 它,并开始构建!