GraphQL 订阅与 socket.io

问题描述

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

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

解决方法

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

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

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

更多细节,你可以看看:https://dgraph.io/docs/graphql/subscriptions/

,

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

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

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