javascript - Node.js : SocketIO vs http request performance

标签 javascript node.js sockets socket.io

我遇到这种情况,我需要将数据存储在数据库中并仅向特定套接字发出事件。这可以通过两种方式完成:

  1. 从客户端发出一个事件,在服务器端监听该事件,存储数据并将事件发送到我们想要的套接字。

  2. 向服务器发送 http 请求,我在服务器上存储数据并向套接字发出事件。

我想知道这些方法中哪一种更有效,以及是否有比这两种更好的用例解决方案。

最佳答案

我想说,如果您已经在使用 SocketIO,那么选择选项 1(从客户端发出事件)可能是个好主意。我不确定您的应用程序是如何构造的,但我认为当您首先使用 SocketIO 时,无论如何您都会通过那里进行所有服务器端通信。

HTTP 请求对它们来说有明显的开销,因为它们至少将 header 发送到服务器。

但是当你开始long polling您始终需要确保它不会在服务器上造成巨大的负载。现在我看到您的主题中有 node.js,我希望您使用的是它。如果是这种情况,那么这不会产生任何问题,因为 node.js 可以很好地处理这些请求,几乎不占用系统资源。

免责声明:我不是原始技术细节方面的专家,我只是一个有意见的开发人员。我不介意投票,但请让我知道原因,以便我们都能学习。

关于javascript - Node.js : SocketIO vs http request performance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24136693/

相关文章:

javascript - Flex/Silverlight 的 Web 标准替代品(我的意思是严肃的替代品,而不仅仅是 JS 框架)

node.js - 从 ejs 模板访问 localStorage

node.js - 在 Electron 和 Webpack 中使用 node require

javascript - 获取 Jquery 数据表中的总行数

Canvas 蛇游戏中的 Javascript 按钮

javascript - getelementbyid 不工作

javascript - Mongoose,推送数组 Model.update 不是函数

java - 将 HTTP 请求重定向到不同的服务器

C 套接字 : Comparison between pointer and integer terminal error

sockets - 如果我调用了shutdown(fd,SHUT_RDWR),但没有调用close(fd),会发生什么?