我开发了一个Web应用程序,需要Socket.io将通知推送给用户。鉴于此,最好是将Socket.io用于客户端和服务器之间的所有通信,还是将普通的AJAX调用用于所有不需要Socket的通信?
谢谢!
答案 0 :(得分:2)
没有正确答案。如果你已经有一个实时的webSocket连接,并且你知道你将拥有它,那么让客户端通过webSocket发送消息来请求数据是完全可以接受的。
无论您是使用webSocket还是使用HTTP Ajax请求,在客户端和服务器上看起来都更加容易。
webSocket请求“应该”稍微更高效,因为套接字已经打开并连接(因此您可以避免HTTP调用的套接字设置开销)。而且,如果你在https上运行,那么它会有更多的设置开销。但是,存在许多用于处理服务器上的HTTP请求的有用基础结构(会话,模板,大量中间件,调试工具,代理等......),这些基础结构可能更容易用于AJAX调用。并且,当webSocket尚未打开时,Ajax调用也可以用作API。
两个方向都有优点/缺点,所以它实际上取决于请求的类型,用于完成请求的工具以及您自己的偏好。