GraphQL 订阅与 socket.io

lcp*_*ine 8 websocket socket.io graphql-subscriptions ws

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

选择其中一种的标准是什么?性能上有什么区别吗?

eDr*_*var 12

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

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

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

  • “当 GraphQL 服务器中发生突变时,它可以被触发。”实际上,您可以通过向 pubsub 服务器发送消息来随时触发它。 (2认同)

Tua*_*ONG 8

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

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

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

有关更多详细信息,您可以查看: https: //dgraph.io/docs/graphql/subscriptions/

  • 他们之间有性能问题吗? (2认同)