node.js - Express 和 Socket.io - 最佳实践

标签 node.js express socket.io

我现在正在使用服务器端的 Express 框架、socket.io 包和 NodeJS 进行项目,以及socket.io-client 在客户端。

这是代码示例:

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

我想知道使用 http 服务器(由于结合了 socket.ioExpress)是否可能会导致一些限制允许连接到服务器的数量。
我的网站应该在同时使用 1,000 个连接的情况下持续存在。

所以,问题是:

  1. 使用 http 服务器 监听端口是否比 app 变量限制连接数更多?
  2. 一次最大的 socket.io 连接数是多少?对此有什么已知的问题吗?
  3. http serveragentPool是否限制连接数?
  4. http server_maxListeners是否限制连接数?
  5. 我应该使用 app.listen(80) 还是 server.listen(80)?为什么?
    此外,如果您在使用 socket.io、Express 和 Node.js 时有任何建议/最佳实践或已知问题,我将很乐意学习:-)

非常感谢!

最佳答案

问题5的答案:

HTTP 请求的默认端口为 80HTTPS 的默认端口为 443

如果使用任何其他端口而不是默认端口,则必须在 URL 请求中指定端口号。

示例:

域名:example.com,端口:3000。请求 URL 将为 http://example.com:3000 域名:example.com,端口:80。请求 URL 将为 http://example.com

HTTPS 请求相同。

不使用默认端口有以下问题:

  1. 显示应用程序正在运行的端口。
  2. 电信服务提供商可能屏蔽了默认端口以外的端口,因此您的应用可能无法访问。

关于node.js - Express 和 Socket.io - 最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34852896/

相关文章:

angular - 使用 socket.io 模型对 Angular 5 进行单元测试

javascript - 通过 NodeJS 从 Firebase 查询表

mysql - Unique 不适用于 Node.js Sails.js "sails-mysql"

mysql - errno : 1251, sqlMessage: '客户端不支持服务器请求的认证协议(protocol);考虑升级 MySQL 客户端

json - 如何循环遍历 JSON 对象数组?

node.js - Node-PerfectAPI vs Restify.js vs ExpressJS vs Node-APIServer

node.js - 使用redis水平扩展express/node.js和socket.io

node.js - Sails 初始化错误

javascript - 安装 selenium-webdriver 以使用 NodeJS + Selenium + Mocha(在 Windows 上)的理想位置是什么

javascript - Mongoose 异步多次保存冲突