GraphQL 订阅与 socket.io
Posted
技术标签:
【中文标题】GraphQL 订阅与 socket.io【英文标题】:GraphQL Subscriptions vs socket.io 【发布时间】:2021-05-25 17:09:05 【问题描述】:我正在尝试基于 websocket 制作实时应用程序并有两个选择。一个是socket.io
,另一个是GraphQL Subscriptions
。但是很难找到它们的比较。
选择其中之一可以有什么标准,有什么性能差异吗?
【问题讨论】:
【参考方案1】:Socket.IO 是一个库,可在浏览器和服务器之间实现实时、双向和基于事件的通信。 socket.io
GraphQL 订阅另一方面是一个概念,它允许客户端监听来自服务器的实时消息。
所以基本上,GraphQL 订阅 是一种规范,它定义了允许 GraphQL 客户端和服务器实时通信的策略和规则。要实现该功能,您可以使用 Socket.io 等实时工具。
更多详情可以看一下:https://dgraph.io/docs/graphql/subscriptions/
【讨论】:
它们之间是否存在性能问题?【参考方案2】:这是我的比较,因为我有同样的情况。
GraphQL 订阅 - 在数据更改时提供更新。它可以在 GraphQL 服务器中发生突变时触发。这很棒,因为它使您的逻辑紧密耦合。但是,在“聊天”应用程序的用例中。这不是最好的。
Socket.IO - 提供 2 Way Event 通知服务。因此,您可以从客户端发送事件,而无需等待执行 GraphQL 突变。例如:“用户 A 正在键入...”或用户进入或离开对话。
【讨论】:
以上是关于GraphQL 订阅与 socket.io的主要内容,如果未能解决你的问题,请参考以下文章
如何将 socket.io 与 graphql 订阅一起使用?