在angular中使用WebSocket时,使用http客户端服务调用api是否有任何需要/优势?

在angular中使用WebSocket时,使用http客户端服务调用api是否有任何需要/优势?,angular,http,socket.io,real-time,real-time-updates,Angular,Http,Socket.io,Real Time,Real Time Updates,我试图通过使用socket.io库和meanstack构建一个简单的聊天应用程序来学习如何使用socket.io 通过查看一些开源项目(),我发现客户端(主要是在执行聊天逻辑时)通过WebSocket与服务器通信,而不是angular提供的http客户端服务 这是否意味着在使用web套接字进行实时更新时,不需要使用http与服务器通信?最肯定的是不需要。这不是一个角度的问题,但它只是选择正确的工具,为正确的事情 长话短说: 如果是请求/响应模型,则使用http。为什么? 因为它更容易处理。代理

我试图通过使用socket.io库和meanstack构建一个简单的聊天应用程序来学习如何使用socket.io

通过查看一些开源项目(),我发现客户端(主要是在执行聊天逻辑时)通过WebSocket与服务器通信,而不是angular提供的http客户端服务


这是否意味着在使用web套接字进行实时更新时,不需要使用http与服务器通信?

最肯定的是不需要。这不是一个角度的问题,但它只是选择正确的工具,为正确的事情

长话短说:

  • 如果是请求/响应模型,则使用http。为什么?
  • 因为它更容易处理。代理、dns和负载平衡器不需要额外的配置来处理。Web套接字可以
  • 您已经设置了1,因此这不是问题。您将如何处理缓存、路由、gziping、SEO以及http协议和restapi处理的所有现成的东西?您构建的所有内容、所有通信都需要自己的安全考虑、设计模式等
  • 您将如何处理web套接字的状态特性?它们目前只支持垂直伸缩,而RESTAPI可以水平和垂直伸缩
如果您确实需要全双工通信(只有没有套接字的服务器推送),那么您应该将web套接字的使用限制在您真正需要的情况下

即使在这种情况下,也要通过类似的框架。所有现代浏览器都支持WebSocket,但许多用户仍然没有支持WebSocket的浏览器。在这些情况下,信号员会回到长轮询。如果您在所有情况下都使用它,想象一下如果您使用这样的浏览器并对每个请求应用长轮询,将会发生什么


我可以继续,但我想你明白了

它向我展示了不同之处,让我更加理解WebSocket和restfull API。我明白了其中的含义。现在我明白了。