我一直在nodejs 中编程,研究了如何使用socket.io 和ajax 调用节点服务器。 socket.io 是为了取代 ajax 而设计的吗?我很想知道在哪些情况下使用 socket.io 比较好,哪些 ajax 更好。感谢您的意见。
嗯,web 套接字(通过 socket.io)提供的 ajax 所缺乏的主要功能之一是服务器推送。因此,使用 ajax,如果您想了解服务器上的新事件(例如,不同的用户向您发送了一条消息),您需要进行服务器轮询,这意味着您以相对频繁的周期性循环发送 ajax 请求。大多数情况下,服务器会响应没有新内容,但偶尔当有新内容时,客户端可以了解它。
Web 套接字允许服务器主动向客户端推送通知,而无需轮询。因此,如果您的应用程序有任何类型的信息需要在服务器上启动并仅显示在浏览器中,那么 Web 套接字是一个更好的解决方案。
- Submitting data to the server in request/response model
- ajax 或 web sockets 本质上是等价的,传统形式的 POSTS 也可以
- Submitting events to the server in an event stream model
- Web 套接字是最好的,可以通过 ajax 进行模拟
- Pushing events from server to browser
- Web 套接字是最好的,可以通过 ajax 长轮询、Flash 等进行模拟(socket.io 有几个后备方案,如果真正的 Web 套接字不可用,它可以尝试使用)。
- older browsers, some mobile platforms
- 不存在网络套接字支持,因此 ajax 是您的后备方案
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)