实时追踪系统

时间:2018-07-27 05:25:54

标签: node.js mongodb real-time

我的客户有1000辆出租车,他想跟踪每个出租车位置并查看其显示。我的问题是如何使用驾驶员移动设备跟踪所有出租车信息。我正在使用mongoDb数据库。 我计划使用开发api来解决此问题,然后移动设备在10秒钟后发送其位置信息。但是问题在于服务器当时很忙,无法使用api正常工作。 我看到Firebase实时存储客户信息。我需要知道使用mongodb像Firebase数据库一样工作的可能性。

我正在使用nodejs进行后端开发。如果有人知道如何存储实时数据,请帮忙

3 个答案:

答案 0 :(得分:0)

您可以将Firebase用作实时数据库。看看这个链接:https://github.com/firebase/geofire

但是,如果要使用MongoDB,可以使用MongoDB地理空间查询并使用socket.io启用实时行为。 有关更多详细信息:https://docs.mongodb.com/manual/geospatial-queries/

答案 1 :(得分:0)

您可以将https://socket.io/用于实时跟踪系统。 这是一个用于实时Web应用程序的JavaScript库。

您只需要配置MongoDB。 有很多博客可以向您介绍如何使用MongoDB设置socket.io。

其中一些是...

  1. http://blog.slatepeak.com/creating-a-real-time-chat-api-with-node-express-socket-io-and-mongodb/
  2. https://blog.feathersjs.com/building-a-rest-and-real-time-api-with-express-feathers-and-mongodb-12071e5417e1

答案 2 :(得分:0)

您(通常)不能实时跟踪出租车,问题是您的互联网连接可能由于GPS信号低而很差,有时甚至是很低的延迟甚至中断了。而是设计两个独立的应用程序:

  1. 一个,它将在本地FIFO队列中存储当前GPS位置
  2. 第二,它将把队列刷新到远程服务器

这种方法将确保您最终将获得所有职位,而不必担心丢包和可能发生的其他问题。

您可以考虑使用UDP(或更好的DTLS)代替TCP连接,该协议速度更快,但可靠性较低。如果必须要具有可实现性(如果只是出租车则要怀疑),则可以使用TCP(或更好的TLS)。您将如何发送和接收数据只是一个细节。

还要确保在存储任何数据之前对设备进行身份验证,尤其是在设备之间的连接不安全的情况下。