Javascript 如何获取实时数据?

Javascript 如何获取实时数据?,javascript,node.js,reactjs,real-time,Javascript,Node.js,Reactjs,Real Time,我正在尝试构建一个总线应用程序,它的行为应该与下面的()完全相同 现在我根本无法理解如何从后端不断地向UI提供数据?我不想在一段时间后发送ajax请求。我已经用react和node.js完成了聊天应用程序,但它们是实时的,从某种意义上说,一个用户做了一些事情(发送消息或断开连接),服务器发送套接字事件,客户端监听并更新 但是像这样的应用程序,用户除了观看公交车之外什么都不做,UI如何用最新数据更新?我认为您需要集成实时数据库。 您可以使用Firebase数据库 下面是关于如何集成它的示例代码。

我正在尝试构建一个总线应用程序,它的行为应该与下面的()完全相同

现在我根本无法理解如何从后端不断地向UI提供数据?我不想在一段时间后发送ajax请求。我已经用react和node.js完成了聊天应用程序,但它们是实时的,从某种意义上说,一个用户做了一些事情(发送消息或断开连接),服务器发送套接字事件,客户端监听并更新


但是像这样的应用程序,用户除了观看公交车之外什么都不做,UI如何用最新数据更新?

我认为您需要集成实时数据库。 您可以使用Firebase数据库

下面是关于如何集成它的示例代码。
我认为您需要集成实时数据库。 您可以使用Firebase数据库

下面是关于如何集成它的示例代码。

您需要使用套接字,也许您可以使用其他与.net和html5兼容的大型库


对于客户端,我认为最好的选择是,它是一个处理实时数据的强大工具,例如,使用Angularjs显示实时数据,你需要使用套接字,也许你可以使用其他与.net和html5兼容的大型库

对于客户端来说,我认为最好的选择是,它是一个处理实时数据的强大工具,例如,使用Angularjs显示实时数据,这是一个可以实现浏览器之间实时通信的工具

您可以使用它来实现web客户端和服务器之间的实时双向通信

您可以使用它来实现浏览器之间的实时通信

您可以使用它来实现web客户端和内部正在使用的服务器之间的实时双向通信–检查

发出的事件
vehicle\u update
返回如下数据:

{
  "routeNumber": 100,
  "delay": -37,
  "inCongestion": null,
  "latitude": 45.5231087,
  "longitude": -122.959265,
  "type": "rail",
  "vehicleID": 104
}
有了这样的信息,您可以为移动中的每个元素(vehicleID为uniq,易于跟踪)创建动画。

内部正在使用–检查

发出的事件
vehicle\u update
返回如下数据:

{
  "routeNumber": 100,
  "delay": -37,
  "inCongestion": null,
  "latitude": 45.5231087,
  "longitude": -122.959265,
  "type": "rail",
  "vehicleID": 104
}

有了这样的信息,您可以为移动中的每个元素(vehicleID是uniq,很容易跟踪)创建动画。

他们使用WebSocket,我知道他们在使用WebSocket,但我的问题是,他们是如何在没有客户端操作的情况下发送数据和接收数据的?他们没有。客户端必须建立websocket连接。但这可以在没有用户交互的情况下完成。你有一个推送服务器脚本,大约每15秒运行一次,不需要非常精确。他们使用WebSocket,我知道他们在使用WebSocket,但我的问题是,他们是如何在没有客户端操作的情况下发送数据和接收数据的?他们没有。客户端必须建立websocket连接。但是这可以在没有用户交互的情况下完成。你有一个推送服务器脚本,大约每15秒运行一次,不需要非常精确。但是我将从api获取数据!你现在有两个选择。1.使用从API获取数据并更新Firebase实时数据。2.使用,您可以跳过angularjs,但使用other并保持一定的间隔,以便每5秒左右获取最新的位置数据,并使用更新每个客户端订阅的车辆跟踪表。但我将从api获取数据!你现在有两个选择。1.使用从API获取数据并更新Firebase实时数据。2.使用时,您可以跳过angularjs,但使用other时,请每隔5秒左右使用other获取最新的位置数据,并使用更新每个客户订阅的车辆跟踪表。感谢您的详细回答。我知道这个应用程序使用WebSocket。服务器发出一个事件,客户端接收一个事件。我的问题是,如何确保始终有一个事件在进行,以便客户能够不断地侦听和更新数据?您想在后端或前端了解这些知识吗?Backand可以跟踪所有连接的客户端-如果客户端的响应丢失-这意味着缺少与它的连接。某种心跳-每次(或少于100次,例如100次)发送响应到后端后,客户端仍处于连接状态。感谢详细的回答。我知道这个应用程序使用WebSocket。服务器发出一个事件,客户端接收一个事件。我的问题是,如何确保始终有一个事件在进行,以便客户能够不断地侦听和更新数据?您想在后端或前端了解这些知识吗?Backand可以跟踪所有连接的客户端(如果缺少客户端的响应),这意味着与它缺乏连接。某种心跳-每次(或更少,例如在100次滴答声之后)发送响应到客户端仍然连接的后端之后。