Node.js 我应该分别使用'Express'和'Socket.IO'吗?

Node.js 我应该分别使用'Express'和'Socket.IO'吗?,node.js,express,socket.io,load-balancing,Node.js,Express,Socket.io,Load Balancing,例如,我们有以下简单代码: var http = require('http'); var express = require('express'); var app = express(); var server = http.createServer(app); var io = require('socket.io').listen(server); server.listen(80); 加载/并通过socket.io按下start按钮时,发送的请求从后端繁重的内容开始(许多不同的h

例如,我们有以下简单代码:

var http = require('http');
var express = require('express');
var app = express();

var server = http.createServer(app);
var io = require('socket.io').listen(server);

server.listen(80);
加载
/
并通过
socket.io按下
start
按钮时,发送的请求从后端繁重的内容开始(许多不同的http请求,可能在5到10秒之间),当收到响应时,会立即返回到浏览器

那么主要的问题是:我应该把应用程序分成两部分吗

  • 后端与
    Socket.IO
    作为一个进程
  • 前端,以
    Express
    作为第二个进程

  • 我知道当长请求到来时,它将阻止
    Express
    。例如,当一个用户搜索其他用户时,当长请求正在进行时,该站点将关闭

    通过充分理解并可能分析/测试您的实际代码和客户机,对于一个流程和两个流程只有一个明确的答案。如果node.js代码(无论是常规http请求还是socket.io请求)正确地使用了非阻塞I/O,并且不是CPU密集型的,那么您可以在单个进程中输入数量惊人的请求。这是node.js体系结构的主要优势

    另一方面,如果在大多数请求中都有一些占用大量CPU的计算,那么您可能确实希望对整个应用程序进行集群。我建议通过从http拆分socket.io来进行集群,因为这样可以让多个CPU处理socket.io请求或http请求