express.io VS express + socket.io 有什么用处?

Mat*_*rix 5 sockets node.js express socket.io express.io

我在这里发现了 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/ 有什么区别和优点?

就为了赢一局吗?严重地?或者有另一个带有新工具的层?

Kev*_*hez 4

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

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

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

一开始,我在 Angular 中设置了一个时间间隔来查询所有通知,每 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);
});
Run Code Online (Sandbox Code Playgroud)