node.js - 仅使用 websockets 构建整个站点(通过 socket.io 和 node.js,没有 Ajax)?

标签 node.js websocket

这可能吗?有人试过吗?

使用 websockets 意味着没有 httpheaders 被交换(就像在 Ajax 请求中一样),因此页面显示速度肯定会提高,但是即使没有任何事情发生,您也可以通过套接字保持与服务器的连接,是随着用户数量的增加,这是否有害?

在客户端和服务器之间保持连接的情况下,服务器是否仍然可以处理连接在同一端口上的其他客户端?

最佳答案

这绝对是可能的,但我还没有尝试过。您将获得延迟提升,但带宽提升不会显着。真正的问题不是服务器资源(在大多数情况下,通过 AJAX 持续轮询服务器可能在服务器上更难),但 AJAX 确实解决了很多问题(尤其是您将遇到的问题)增加),因此您将重建很多东西以供自定义使用。

除非您确实遇到延迟问题,否则我建议您使用标准 AJAX。或者仅将 WebSockets 用于实际需要低延迟的应用程序部分,这样您就不会重新创建所有轮子。

是的,能够让多个客户端同时连接到一个监听端口是可能的并且一直都在完成(例如,您的 Web 服务器几乎肯定会在端口 80 上这样做)。您的 WebSocket 服务器必须正确处理传入的连接(事件、线程或多进程),但这几乎是标准的公平(谷歌“套接字编程 YOUR_LANGUAGE”)。

关于node.js - 仅使用 websockets 构建整个站点(通过 socket.io 和 node.js,没有 Ajax)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8041710/

相关文章:

javascript - 传递给 Jade 的对象最终作为字符串

node.js - 从 Sublime Text 2 运行 Node 脚本,可能吗?

javascript - 你如何创建一个命名的异步箭头函数?

javascript - Sequelize错误: column reference "id" is ambiguous.无法在文档中找到答案

Javascript WebSocket 到 Firebase?

node.js - 使用Hapi.js运行第三方命令行工具

javascript - 向 socketio 中的特定客户端组发送消息

php - 用于树莓派的 Ratchet Websocket

node.js - Socket.IO 和 Node.js 核心集群

javascript - 处理 JMeter WebSocket Sampler 的响应