GraphQL Subscriptions vs socket.io



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

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

这是我在相同情况下的比较。

GraphQL订阅-当数据发生变化时进行更新。它可以在GraphQL服务器中发生变化时触发。这很好,因为它使您的逻辑紧密耦合。然而,在使用"Chat"应用程序。这不是最好的。

插座。IO-提供2路事件通知服务。因此,您可以从客户机发送事件,而无需等待执行GraphQL突变。例如:"用户A正在输入…"或者用户进入或退出对话

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

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

也就是GraphQL订阅是定义策略的规范&允许GraphQL客户端和服务器实时通信的规则。为了实现这个特性,你可以使用实时工具,比如Socket.io.

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

对我来说,比较的是Apollo gql订阅和socket.io。前者的好处是它是一个盒装的解决方案,告诉你如何做每件事,而后者的好处是你可以实现如何做每件事。

我已经大规模使用了这两种方法;在引擎盖下,它们基本上是相同的技术,没有任何性能差异。如果您使用的是gql服务器,那么就坚持使用它。

最新更新