node.js - express.io VS express + socket.io 的效用是什么?

标签 node.js sockets express socket.io express.io

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

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

那又怎样 差异,优势,使用:require('express.io') 喜欢这里 http://express-io.org/

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

最佳答案

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

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

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

一开始我在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);
});

关于node.js - express.io VS express + socket.io 的效用是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32936497/

相关文章:

html - 这个套接字错误是什么意思?

c - 为什么 IP_TTL 和 IP_MULTICAST_TTL 是独立的套接字选项?

node.js - Passport 注销()错误: Cast to ObjectId failed for value "logout" at path "_id" for model "somemodel(not the user model)"

CoffeeScript 中的 Node.js module.exports

css - 使用 PhantomJS 将页面呈现为 PDF 时不考虑外部和本地 CSS

postgresql - 如何使用 node-postgres 进行批量插入

angularjs - Node.js 从返回未定义的 MongoDB 获取请求

javascript - Node : ReferenceError: require is not defined

Python套接字: cannot receive int array

javascript - 如何在 next.js 应用程序中从服务器端获取客户端的 IP 地址?