如何将带位置的数据实时发送到服务器?我做对了吗?

我需要制作一个系统,其中 android 应用程序将用户的位置实时发送到服务器。然后在网站上(在同一台服务器上),您将能够观看用户(使用应用程序)的旅行方式。就像您可以从 ubereats 关注食品供应商一样。


该项目目前已经制作完成并且运行良好,但我不相信我是否做得正确?


现在,android 应用程序每 1 秒读取一次用户的位置,并使用 POST 方法将其发送到服务器。例如:mydomain.com/gps.php?usertoken=XXX&latitude=XXX&longitude=XXX。每次当一个 php 文件得到这些数据时,它都会将它保存在 MySQL 数据库中。就这样。


现在访问该站点的用户可以在地图上看到用户使用应用程序的位置(来自数据库的位置)。


这是正确的解决方案吗?我不应该使用任何其他方法吗?未来可能有几十个用户,这样的系统效率高吗?我恳请您提供一些建议。我是一个初级程序员。


android 应用程序的 gps.php 文件中的代码:


$lat = $_POST['latitude'];

$long = $_POST['longitude'];

$login = $_POST['usertoken'];


//save location to database

$db = mysqli_connect('localhost', 'xxxx', 'xxxx', 'xxxx');

$db->query("UPDATE users SET latitude='$lat', longitude='$long' WHERE login='$login'");

$db->close();


牧羊人nacy
浏览 305回答 2
2回答

jeck猫

WebSockets 可能是您的解决方案。它们允许您在服务器和客户端之间建立双向连接。非常适合由于产生的较小开销而导致大量“流量”的应用程序。将数据从服务器推送到客户端的能力对于您的应用程序来说也非常简洁,因为它允许您在服务器上发生任何事情时更新客户端。https://socket.io/是一个非常简洁的客户端和服务器库。对于 MySQL 部分,您可以使用 node.js 及其 mysql 包之类的东西https://nodejs.org/en/https://www.npmjs.com/package/mysql

幕布斯7119047

我认为,您的 rest api(http) 网络调用没有错。在大多数情况下,这是一个正确的解决方案。但我认为您需要在 php 代理服务器中保持数据库连接。因为服务器通常一直在运行。并且在每个查询中重新连接到数据库是一项昂贵的工作。
打开App,查看更多内容
随时随地看视频慕课网APP