我们正在IOS和Android中创建一个实时GPS跟踪器应用程序。我们想从 B 的地图上看到 A 的实时位置(就像在 UBER 中一样,我可以看到司机的位置(。我们现在可以获取 A 的坐标,但是我们应该如何实时将其发送给 B?我们是否仍然应该使用数据库来获取和发送坐标?或者有没有办法将坐标从手机发送到手机?
看起来你需要一个双向数据通道或一个非常快速的no-sql数据库。
首先,关于双向数据通道。您可以使用 socket.io,其中有一个非常简单的节点服务器来支持双向数据通道。或者你可以只使用WebRTC,它并不完全是为此目的而构建的,但你仍然可以利用数据通道来实现你的目标。但是,无论哪种方式,它都主要使用 UDP 连接完成,换句话说,这意味着它不可靠。您无法确保另一方接收坐标。
第二种解决方案,一个非常快速的无SQL数据库,另一方面,可能更适合你的应用程序。如果您从头开始构建服务器,您仍然需要 socket.io 来监视数据库中的更改并通知双方(如果您使用 https 请求,它甚至不会接近实时(。您可以让他们在例如/root/geolocation/{room-hash}/coords
等一些参考下更新坐标,并让双方通过 socket.io 连接监视同一 ref。
如果您不是在寻找从头开始构建实时服务器的经验,而只是想完成您的应用程序。你可以看看Firebase,我认为这是一个相当快的数据库。您可以在 android/ios 代码中使用 firebase 库。如果您已经对本机代码进行了编程并且不想更改它。使用 Firebase 云函数并使其进行 API 调用。
您需要一种实时通信机制来将 A 位置发送到 B 客户端。像websocket(例如:socket.io(或一些消息传递协议(例如:MQTT.org(之类的东西可以帮助你。