我现在正在使用服务器端的 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.io
和 Express
)是否可能会导致一些限制允许连接到服务器的数量。
我的网站应该在同时使用 1,000 个连接的情况下持续存在。
所以,问题是:
- 使用
http 服务器
监听端口是否比app
变量限制连接数更多? - 一次最大的
socket.io
连接数是多少?对此有什么已知的问题吗? http server
的agentPool
是否限制连接数?http server
的_maxListeners
是否限制连接数?- 我应该使用
app.listen(80)
还是server.listen(80)
?为什么?
此外,如果您在使用 socket.io、Express 和 Node.js 时有任何建议/最佳实践或已知问题,我将很乐意学习:-)
非常感谢!
最佳答案
问题5的答案:
HTTP
请求的默认端口为 80
,HTTPS
的默认端口为 443
。
如果使用任何其他端口而不是默认端口,则必须在 URL 请求中指定端口号。
示例:
域名:example.com
,端口:3000
。请求 URL 将为 http://example.com:3000
域名:example.com
,端口:80
。请求 URL 将为 http://example.com
与 HTTPS
请求相同。
不使用默认端口有以下问题:
- 显示应用程序正在运行的端口。
- 电信服务提供商可能屏蔽了默认端口以外的端口,因此您的应用可能无法访问。
关于node.js - Express 和 Socket.io - 最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34852896/