我理解两者背后的主要原则.然而,我有一个我无法回答的想法.
基准测试显示,WebSockets可以提供更多消息,如本网站所示:http://blog.arungupta.me/rest-vs-websocket-comparison-benchmarks/
这是有道理的,因为它声明连接不必关闭和重新打开,也是http标头等.
我的问题是,如果连接总是来自不同的客户端(也许可能是来自同一客户端的那些),该怎么办?该基准测试表明它是从我理解的相同客户连接,这将有意义保持一个恒定的连接.
如果用户每分钟只执行一次请求,那么通过REST而不是WebSockets运行通信是不是有益,因为服务器可以释放套接字并且可以处理更多的人群?
要解决REST的问题,你可以通过垂直扩展,WebSockets是水平的吗?
这有意义还是我没有?
我正在尝试构建一个包含即时消息模块的应用程序,主要挑战之一是无论用户数量或交换的消息数量如何,都要保持应用程序的可扩展性。
在我读到的一篇文章中,可以使用带有“订阅”的 GraphQL 构建实时应用程序,除此之外,它使用起来很简单,并且具有最大限度地减少往返对象检索的优势,从而减少资源使用。
但是,如果我们需要向系统添加新的服务器/节点以进行水平扩展怎么办?这可以使用 GraphQL 吗?
以允许水平缩放的 websockets 实现为例,有SocketCluster。我想知道单独由 GraphQL 开发的应用程序是否可以跨多个节点/机器进行扩展,或者它必须与另一个框架(如 SocketCluster)一起使用才能实现这一目标。