是否可以通过 GraphQL/REST 后端共享 3rd 方 API websocket/实时连接?
Posted
技术标签:
【中文标题】是否可以通过 GraphQL/REST 后端共享 3rd 方 API websocket/实时连接?【英文标题】:Is it possible to share 3rd party API websocket/realtime connection through GraphQL/REST backend? 【发布时间】:2021-02-24 13:02:34 【问题描述】:我的后端服务器连接到第三方 API 服务。这个第三方 API 服务通过 websocket 将事件发送到我的后端,然后再转发回我的前端。从 websocket 发送的每条消息,我都会付费。
此外,websocket 根据请求的值提供不同的数据。一个例子:想象一个为不同产品提供实时支付的 API 服务。如果我想接收书籍的实时付款,我会使用价值“书籍”。如果我想接收 iPhone 的实时付款,我会使用值“iPhones”等。
为了最大限度地减少成本支出,我希望用户通过我的后端进行连接以共享信息流,而不是每次都创建一个新的 websocket 连接。并且对于未使用的连接,要断开与第三方 websocket 的连接。 IE。如果用户要通过我的后端请求“书籍”,则会打开到第三方 API 的连接,然后随后流回。如果另一个用户也请求“书”,他们只需跳到现有打开的连接上。
这是 GraphQL 的可能性吗?您如何看待它的实现?就在我的脑海中,我想在后端进行某种跟踪,检查打开了哪些连接以及是否正在使用它们。否则,在 REST 中可以吗?
【问题讨论】:
这听起来像额外的努力每次都做一个websocket,而不是只做一次。恕我直言,默认设置是建立 1 个连接……你为什么要建立这么多? 【参考方案1】:您可以使用 Apollo 的轮询功能做一些非常相似的事情,并加入一些自定义逻辑。
基本上,您可以使用轮询作为套接字来打开与第三方的连接以更新数据层。然后,当另一个用户查询该数据层时,它应该已经存在(或者您可以在此基础上添加快速检查)。
【讨论】:
以上是关于是否可以通过 GraphQL/REST 后端共享 3rd 方 API websocket/实时连接?的主要内容,如果未能解决你的问题,请参考以下文章
基于微信小程序共享停车位设计与实现SSM_car.rar(项目源码+数据库文件+微信小程序开发+后端java语言)