【发布时间】:2019-12-18 14:54:18
【问题描述】:
我需要制作一个系统,android 应用程序会将用户的位置实时发送到服务器。然后在网站上(在同一台服务器上),您将能够看到用户(使用应用程序)如何旅行。就像您可以关注 uber eats 的食品供应商一样。
该项目目前已经制作完成并且运行良好,但我不相信我是否做得正确?
现在,android 应用程序每 1 秒读取一次用户的位置,并使用 POST 方法将其发送到服务器。例如:mydomain.com/gps.php?usertoken=XXX&latitude=XXX&longitude=XXX。每次 php 文件获取此数据时,都会将其保存在 MySQL 数据库中。就是这样。
现在访问该站点的用户可以在地图上看到用户使用应用程序的位置(来自数据库的位置)。
这是正确的解决方案吗?我不应该使用任何其他方法吗?未来可能有几十个用户,这样的系统会高效吗?我恳请一些建议。我是初级程序员。
在 gps.php 文件中用于 Android 应用程序的代码:
$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();
【问题讨论】:
-
你应该使用带有
set interval()或websockets的ajax来解决这个问题 -
使用 ajax 很好,1 秒更新是多余的,除非你需要每秒更新服务器端,大多数时候你不知道(不确定 android 但在 chrome 中,如果重新查询更多,它会呻吟每分钟一次),php 代码对 SQL 注入开放,这是在添加实时更新之前需要解决的更大问题。
标签: php android server location