像呼叫转移一样的Ubre / Lyft

时间:2018-12-03 07:40:13

标签: android sockets uber-api

我一直在开发乘车共享应用程序(仅适用于后端和Android应用程序)。它最初是一个学术项目。现在,我正在尝试改进该应用程序,希望有一天能在我所在的地区启动它。我在将呼叫转移到驱动程序时遇到一些问题。我现在正在做的事情如下:

  • 选择5个附近的驾驶员
  • 通过Socket.io向驱动程序发送通知
  • 如果套接字已断开连接,则通过推送通知发送通知
  • 与此同时,服务器为每个驱动程序分配20秒
  • 如果未从应用程序收到确认,则服务器会将请求发送到下一个驱动程序,依此类推

>

  • 当应用收到来自Socket / push的通知时,它会向API发送推送通知
  • 此API确认该驱动程序的请求是否仍处于活动状态
  • 当它接收到来自服务器的响应时,它将启动铃声并将确认发送给服务器

>

  • 服务器在收到确认后便知道​​驱动程序已收到请求,并且不会将请求发送给下一个驱动程序

  • 如果应用拒绝通话,则服务器会将请求发送给下一个驱动程序

现在我遇到的问题是20秒还不够。通常情况下,由于延迟等原因,整个过程花费的时间不会超过20秒,因此当应用程序调用API来检查该驱动程序的请求是否仍处于活动状态时,它会得到否定的响应。因此,该应用程序永远不会播放任何铃声。从驱动程序的角度来看,该应用程序刚刚出现。

我觉得,如果我坚持使用这种机制,驱动程序可能会由于延迟而无法接听电话。我敢肯定,Uber / Lyft找到了解决此类问题的方法。如果有人可以指导我采取更有效的方法来解决此问题,我将感到非常高兴。

0 个答案:

没有答案