如何将另一个客户端使用websocket发起的请求通知客户端?

如何将另一个客户端使用websocket发起的请求通知客户端?,websocket,client-server,real-time,api-design,vapor,Websocket,Client Server,Real Time,Api Design,Vapor,一般来说,我对软件开发是新手,我正在为一个简单的乘车共享iOS应用程序编写一个后端(稍后我将开发)。我正在使用Vapor创建后端 当用户向API发出trip请求时,我想创建一个新的trip,并在用户和驱动程序之间建立websocket会话。我遇到的问题是,我如何通知驱动程序请求已存在,并将其添加到会话中 以下是我到目前为止的想法,尽管我不确定它是否有效: 当收到行程请求时,我会创建一个会话和一个带有会话id的行程对象。当驾驶员访问应用程序中的“行程请求”选项卡时,他会发出get请求以检索活动的行

一般来说,我对软件开发是新手,我正在为一个简单的乘车共享iOS应用程序编写一个后端(稍后我将开发)。我正在使用Vapor创建后端

当用户向API发出trip请求时,我想创建一个新的trip,并在用户和驱动程序之间建立websocket会话。我遇到的问题是,我如何通知驱动程序请求已存在,并将其添加到会话中

以下是我到目前为止的想法,尽管我不确定它是否有效:

当收到行程请求时,我会创建一个会话和一个带有会话id的行程对象。当驾驶员访问应用程序中的“行程请求”选项卡时,他会发出get请求以检索活动的行程请求。然后,当他单击其中一个trip请求时,他会发出一个请求,请求将该特定trip的会话id添加到该会话中

我在上面的解决方案中看到的问题是,这会让用户成为海报,而司机成为观察员,我不确定这是怎么做的,因为我希望司机充当海报(发送位置更新,以便用户可以实时跟踪地图上的司机)

另一个问题是,用户必须无限期地等待驱动程序接受他们的请求


是否有更好的方法通知驾驶员行程请求?我如何才能做到这一点

首先,您在尝试在用户和驱动程序之间建立直接连接时会遇到麻烦,因为直接连接到智能手机上的应用程序非常困难(更改IP、NAT、防火墙和打开端口是其中的一些问题)

我建议,您为trips/trip请求实现某种类型的。要通知驱动程序或将更新发送回用户,您可以使用推送通知(对于iOS,它是APN)或WebSocket。在最好的情况下,这两种情况都适用于不同的情况

以下是关于这些主题的进一步研究的一些提示:

  • WebSocket:
  • 推送通知:,()
我希望这对你的下一步有所帮助。你的问题很宽泛,更具体一些