ノードアプリで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);
});