Sockets websocket、http或两者?

Sockets websocket、http或两者?,sockets,http,web,Sockets,Http,Web,编写一个单页web应用程序,并且知道一些屏幕需要实时更新,我面临一个大的一般性问题,不管我将使用什么API和前端框架以及语言: 我将通过websocket实现数据传输,我应该为任何不需要实时更新的数据传输保留http,还是只使用websocket? 知道并非所有浏览器都支持websocket,但大多数(如果不是所有最近的浏览器)都支持websocket,那么服务器最好同时处理websocket和http,还是我应该使用websocket进行所有数据传输?使用websocket满足以下需求 服务器

编写一个单页web应用程序,并且知道一些屏幕需要实时更新,我面临一个大的一般性问题,不管我将使用什么API和前端框架以及语言:

我将通过websocket实现数据传输,我应该为任何不需要实时更新的数据传输保留
http
,还是只使用websocket?


知道并非所有浏览器都支持websocket,但大多数(如果不是所有最近的浏览器)都支持websocket,那么服务器最好同时处理websocket和http,还是我应该使用websocket进行所有数据传输?

使用websocket满足以下需求

  • 服务器数据经常更改
  • 多用户通信
  • 现场直播等

  • 请参阅以更好地了解websocket的用法。

    您可能最终会同时使用websocket和HTTP请求

    WebSockets,因为它听起来像是您需要它们(因为实时更新),并且可以负担得起对它们的浏览器支持(否则,您将被迫使用基于Ajax/Comet的旧方法)

    HTTP有两个可能的原因:

    • 您迟早会需要阻塞请求-响应行为。例如,对用户进行身份验证可能需要在进一步处理之前阻止结果,因此您需要发送身份验证请求并阻止,直到获得结果。在WebSocket上处理这可能有点烦人
    • 您可能需要在不中断正在进行的实时更新的情况下加载大量数据。若您要通过WebSocket(作为一个大数据块)加载此类数据,它将和实时更新一起排队,并且可能会延迟更新

    这两个问题都可以通过websocket解决,但它们更容易通过简单的HTTP Ajax请求解决。

    是的,我知道websocket,但我的问题是
    既然我需要它,我应该只使用websocket吗,或者我应该在同一个应用程序中混合使用websocket和http吗?
    我的建议是混合使用websocket和http。如果您的应用程序需要请求-响应模型、流式传输等,那么http将是救世主。对于以上提供的答案,我深表歉意。不用担心!谢谢你。您能否解释或发送一个链接,解释为什么使用混合比只使用WebSocket更好?请参阅-部分:WebSocket取代HTTP吗?在中,我将在稍后发布进一步的分析…我使用WebSocket进行低负载传输,更像是rpc类型的API、事件,我使用http进行大负载传输。但是,请确保在浏览器不支持websockets的情况下实现http回退。谢谢,虽然@ManoNamo和@Apero对以前答案的评论为Q/a增加了价值,但这正是我想要的答案!有一件事,关于锁定用户的第一点,我认为在一个单页应用程序(正确完成)中,你应该能够在后台运行任何东西的情况下锁定用户,所以我不会把它作为我选择的拦截器,但是是的,我会同时使用websockets和http,并注意通过HTTP执行
    findAll
    或慢速API调用。