我在这里发现了 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/?
就为了赢一条线?严重地?还是有新工具的另一层?
我在这里发现了 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/?
就为了赢一条线?严重地?还是有新工具的另一层?
我一直在我的节点应用程序中使用 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);
});
我最近,今天,查看了 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个漏洞
因此,尽管我想使用非常好的路由功能,但在修复依赖关系之前,我认为这不适用于生产。