android - 优步如何向司机发送新的乘车请求?

标签 android websocket architecture uber-api

我很好奇 Uber 可能使用什么系统设计来向司机发送新行程。 优步司机的手机上不断出现新的行程请求。需要考虑的事情是:-

  • 请求是否是按请求的位置拆分发送的?
  • 他们是否使用永久打开的单向套接字连接?
  • 或者应用程序是否不断查询数据库?

如果有人可以给出可以使用 Nodejs 服务器和 Android 应用程序前端(当前偏好)实现类似架构的库示例,这也会很有帮助。

最佳答案

我曾经是 Uber 的软件工程师。那是很久以前的事了,但我想我可以回答你的问题:

  1. 乘客向司机发出的乘车请求按乘客所在城市进行 fragment 。匹配算法不需要考虑世界其他地区的驾驶员。

  2. 过去,Uber 司机和乘客应用程序每 4 秒左右轮询一次服务器。服务器接收骑手和司机的新 GPS 位置并发回状态更新。如今,Uber apps rely on persistent TCP connections --但是当移动网络不可靠时,轮询是一个重要的后备措施。

  3. 据我所知,驾驶员和乘客应用程序不必在乘车过程中每隔几秒就不断查询我们的磁盘数据库。此类信息通常会缓存在内存中,直到骑行结束。

关于android - 优步如何向司机发送新的乘车请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68294906/

相关文章:

php - 我应该如何处理预期的错误?例如。 "username already exists"

architecture - 逻辑架构图

android - 以编程方式将样式应用于 MaterialButton

Android ObjectAnimation 只启动了一次

javascript - NodeJS Websocket 客户端保持挂起模式

javascript - Node.js - 同一端口上的同构 TCP/Websocket 后端服务器

php - ReactJS:传输 Prop

c++ - G++ 警告 : built for unsupported file format which is not the architecture being linked

android - google 和 maven 存储库之间的 play-services-measurement-base 版本不匹配

android - 在 OpenGL ES 中渲染期间编译着色器是一种好的/有效的做法吗?