GraphQL 订阅与 socket.io

GraphQL Subscriptions vs socket.io

我正在尝试基于 websocket 制作实时应用程序并有两个选择。一个是 socket.io,另一个是 GraphQL Subscriptions。但是很难找到它们的比较。

选择其中一个的标准是什么,有什么性能差异吗?

Socket.IO 是一个支持浏览器和服务器之间实时、双向和基于事件的通信的库。 socket.io

GraphQL 订阅 另一方面是一个允许客户端收听来自服务器的实时消息的概念。

所以基本上,GraphQL 订阅 是一个规范,它定义了允许 GraphQL 客户端和服务器实时通信的策略和规则。要实现该功能,您可以使用 Socket.io.

等实时工具

更详细的可以看一下:https://dgraph.io/docs/graphql/subscriptions/

这是我的比较,因为我遇到了同样的情况。

GraphQL 订阅 - 在数据变化时提供更新。它可以在您的 GraphQL 服务器中发生突变时触发。这很棒,因为它使您的逻辑紧密耦合。但是,在“聊天”应用程序的用例中。这不是最好的。

Socket.IO - 提供 2 Way Event 通知服务。因此,您可以从客户端发送事件,而无需等待执行 GraphQL 变更。例如:“用户 A 正在打字...”或用户进入或离开对话。