5

我在这里发现了 socket.io 和聊天示例:https ://github.com/rauchg/chat-example/blob/master/index.js

他们直接使用require('express')AND require('socket.io')

那么有什么区别,优势,使用:require('express.io')像这里http://express-io.org/

就为了赢一条线?严重地?还是有新工具的另一层?

4

2 回答 2

4

我一直在我的节点应用程序中使用 express.io。我发现主要优点是您可以将普通快速路由与套接字路由混合使用。

让我解释一个真实的例子:

在我的应用程序中,我有一个带有 Angular 客户端的 nodejs REST API。我的客户需要显示一些由管理员调用特快专递请求创建的实时通知。

一开始,我在角度上设置了一个时间间隔来查阅所有通知,每 5 秒运行一次。
有几个客户端它工作得很好,但是当客户端增加时,我的服务器超载了。尽管他们没有新的通知,但每个客户都在请求通知。所以我决定开始使用 socket.io 来发送实时通知。

如果我的管理员保存了新通知,服务器会通过套接字广播通知。
这里的问题是管理员在 express 中调用了一个普通的 POST 请求,我需要使用 socket.io 进行广播,所以我集成了 express.io,我可以将普通的 express 请求重定向到一个 socket.io 方法来进行发射。

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);
});
于 2015-12-22T16:58:18.220 回答
3

我最近,今天,查看了 express.io,当我安装节点模块时,npm 报告:

添加了来自 44 个贡献者的 55 个包,并在 32.816 秒内审核了 2606 个包

发现 25 个漏洞(11 个低、5 个中等、9 个高)

运行npm audit fix以修复它们,或npm audit了解详细信息

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

当我删除 express.io npm 报告:

8.976s 移除 57 个包,审计 2539 个包

发现0个漏洞

因此,尽管我想使用非常好的路由功能,但在修复依赖关系之前,我认为这不适用于生产。

于 2019-02-21T05:32:17.130 回答