我如何通知一个客户端另一个客户端使用 websocket 发起的请求?
How can I notify a client of a request initiated by another client with websocket?
我是一般软件开发的新手,我正在为一个简单的 ride-sharing iOS 应用程序编写后端(我稍后会开发)。我正在使用 Vapor 创建后端。
当用户向 API 发出行程请求时,我想创建一个新行程并在用户和 driver 之间建立一个 websocket session。我遇到的问题是如何通知 driver 有请求并将他添加到 session?
这是我到目前为止的想法,但我不确定它是否会起作用:
收到行程请求时,我会创建一个 session 和一个 ID 为 session 的行程 object。当 driver 访问应用程序中的 "Trip requests" 选项卡时,他会发出获取请求以检索活动的旅行请求。然后,当他单击其中一个旅行请求时,他将使用要添加到 session.
的特定旅行的 session id 发出请求
我在上述解决方案中看到的问题是,这会使用户成为海报,而 Driver 成为观察者,我不确定这是要走的路,因为我想要driver 充当海报(发送位置更新,以便用户可以在地图上实时跟踪 driver)。
另一个问题是,在 driver 接受他们的请求之前,用户必须无限期地等待。
是否有更好的方式通知 driver 旅行请求?我怎样才能实现这一目标?
首先,尝试在用户和 driver 之间建立直接连接时会遇到麻烦,因为直接连接到智能手机上的应用程序非常困难(更改 IP、NAT、防火墙和打开端口)是一些问题)。
我建议您为 trips/trip 请求实施某种 REST API。要通知 driver 或将更新发送回用户,您可以使用推送通知(iOS 是 APNS)或 websockets。在不同情况下的最佳情况下。
以下是进一步研究这些主题的一些提示:
- WebSockets:In Vapor, an example chat app using websockets , WebSocket wrapper for Vapor
- 推送通知:Gorush, push notification server, Apple Notifications, (WIP: APNS on NIO)
希望对您接下来的步骤有所帮助。你的问题很笼统,需要更具体。
我是一般软件开发的新手,我正在为一个简单的 ride-sharing iOS 应用程序编写后端(我稍后会开发)。我正在使用 Vapor 创建后端。
当用户向 API 发出行程请求时,我想创建一个新行程并在用户和 driver 之间建立一个 websocket session。我遇到的问题是如何通知 driver 有请求并将他添加到 session?
这是我到目前为止的想法,但我不确定它是否会起作用:
收到行程请求时,我会创建一个 session 和一个 ID 为 session 的行程 object。当 driver 访问应用程序中的 "Trip requests" 选项卡时,他会发出获取请求以检索活动的旅行请求。然后,当他单击其中一个旅行请求时,他将使用要添加到 session.
的特定旅行的 session id 发出请求我在上述解决方案中看到的问题是,这会使用户成为海报,而 Driver 成为观察者,我不确定这是要走的路,因为我想要driver 充当海报(发送位置更新,以便用户可以在地图上实时跟踪 driver)。
另一个问题是,在 driver 接受他们的请求之前,用户必须无限期地等待。
是否有更好的方式通知 driver 旅行请求?我怎样才能实现这一目标?
首先,尝试在用户和 driver 之间建立直接连接时会遇到麻烦,因为直接连接到智能手机上的应用程序非常困难(更改 IP、NAT、防火墙和打开端口)是一些问题)。
我建议您为 trips/trip 请求实施某种 REST API。要通知 driver 或将更新发送回用户,您可以使用推送通知(iOS 是 APNS)或 websockets。在不同情况下的最佳情况下。
以下是进一步研究这些主题的一些提示:
- WebSockets:In Vapor, an example chat app using websockets , WebSocket wrapper for Vapor
- 推送通知:Gorush, push notification server, Apple Notifications, (WIP: APNS on NIO)
希望对您接下来的步骤有所帮助。你的问题很笼统,需要更具体。