我是NodeJS的新手(如果我对某些内容听起来很天真,我很抱歉)并且我一直在深入研究示例Chat Application的源代码。
然而,我无法理解一件事。我知道WebSockets有助于处理持久的全双工双向连接。但NodeJS如何在不使用WebSockets的情况下在上述聊天应用程序中管理持久连接?如果NodeJS 可以处理持久的双向连接,那么在Node中集成Socket.IO之类的功能到底是什么?
答案 0 :(得分:8)
除了WebSockets,您还可以使用long polling技术在服务器和客户端之间创建持久连接。
长轮询是一种变体 传统的民意调查技术 允许模拟信息 从服务器推送到客户端。同 长轮询,客户要求 来自服务器的信息 与普通民意调查类似的方式。然而, 如果服务器没有 为客户提供的信息, 而不是发送空响应, 服务器保存请求并等待 有些信息可供使用。 一旦信息可用 (或在适当的超时后),a 完整的回复发送到 客户端。
然而,它不如WebSockets有效,但它被使用,因为它适用于每个浏览器,而不像WebSockets。试着看看这个article:
将千字节数据减少到2 字节...并减少150毫秒的延迟 到50ms远远超过边际。在 事实上,这两个因素本身就是 足以让WebSocket认真对待 谷歌很有意思。
答案 1 :(得分:2)
我不熟悉聊天应用程序。我没有看到托管演示的链接。
NodeJS是一种服务器端技术。它与原生套接字没有问题。 Socket.IO是客户端和服务器端技术的组合。它恰好在服务器端使用NodeJS。它的优点在于它在客户端提供了一个通用的通信API,无论浏览器实际具有哪些功能。