如何混合使用Socket.io和AJAX

我开发了一个Web应用程序,需要Socket.io将通知推送给用户。 鉴于此,最好是使用Socket.io进行客户端和服务器之间的所有通信,或者对所有不需要Socket的通信使用普通的AJAX调用?

谢谢!

没有正确的答案。 如果你已经有一个活的webSocket连接,并且你知道你会拥有这个连接,那么让客户端通过webSocket发送消息来请求数据是完全可以接受的。

无论是使用webSocket还是使用HTTP Ajax请求,对于客户端和服务器来说,看起来更容易。

一个webSocket请求“应该”会更有效一些,因为套接字已经打开并连接(所以你避免了HTTP调用的套接字设置开销)。 而且,如果您通过https运行,则会有更多设置开销。 但是,在处理服务器上的HTTP请求(会话,模板,大量中间件,debugging工具,代理等等)方面,有很多有用的基础结构可能更容易用于AJAX调用。 而且,当webSocket尚未打开时,Ajax调用也可以用作API。

有两个方向的优点/缺点,所以它确实取决于请求的types,用于完成请求的工具和您自己的偏好。