express.io与express + socket.io的效用有何不同?

5

socket.io是一个库,express.io是一个已经包含了socket.io的express应用程序。它是一个依赖项。 - R_Ice
是的,但是有什么优势呢?要求两者是一样的吗? - Matrix
2个回答

4

我在我的node app中使用了express.io。我发现它的主要优点是可以将普通的express路由与socket路由混合使用。

让我举个实际例子:

我的应用程序中有一个基于nodejs的REST API和一个Angular客户端。我的客户端需要显示一些实时通知,这些通知是由管理员调用express post请求创建的。

起初,我在Angular中设置了一个时间间隔,每隔5秒运行一次以查询所有通知。
当客户端较少时,它运行得很完美,但是当客户端增加时,我的服务器就会超载。每个客户端都在请求通知,尽管他们没有新的通知。因此,我决定开始使用socket.io来发送实时通知。

如果我的管理员保存了一个新通知,服务器会通过socket广播该通知。
问题在于管理员调用普通的express POST请求,而我需要使用socket.io进行广播,因此我集成了express.io并且可以将普通的express请求重定向到socket.io方法以进行emit。

var express = require('express.io');
var app = express();

app.http().io()

app.post('/notificacion', function(req, res){
//I save the notification on my db and then ...
req.io.route('enviar');
});

app.io.route('enviar', function(req) { 
    app.io.room('personas').broadcast('alertasControlador',req.io.request.data.notificacion);
});

没有使用socket.io,就无法像这样重定向吗? - Matrix

3

最近,我看了一下express.io,并安装了node模块。npm报告如下:

从44个贡献者中添加了55个软件包,并在32.816秒内审核了2606个软件包。

发现25个漏洞(11个低危,5个中危,9个高危)。

运行npm audit fix进行修复,或者通过npm audit查看详细信息。

npm audit fix修复了两个低危漏洞。

当我删除express.io时,npm报告如下:

删除了57个软件包,并在8.976秒内审核了2539个软件包。

未发现漏洞。

尽管我很想使用非常好的路由功能,但在修复依赖项之前,我认为这不适合用于生产环境。


1
2020年5月仍然如此:npm audit报告了24个漏洞。 - Mehdi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接