私はexpress.jsとsocket.ioをリアルタイムプッシュ通知システムに一緒に使用しています。私はサーバー側で使用しているいくつかのコード行を共有します。express.jsとsocket.ioを使用してプッシュ通知システムを構築する最善の方法
var app = express();
var server = require('http').Server(app);
var io = require('socket.io')(server);
server.listen(appconfig.webPort, function() {
console.log('server runing at ' + appconfig.webPort);
});
io.on('connection', function(socket) {
var id = setInterval(function() {
some database logic here to get data from database
socket.emit(data);
}, 5000);
});
私の質問はこのコードはサーバー上の負荷を増やしますか?私は数秒ごとにデータベースからデータを取得します。 それが有害である場合、同じことをする最善の方法は何ですか。
ありがとうございますが、データはすべてのユーザーまたはクライアントで異なります。 \ – Meesam
@Meesam - 重要な点は、サーバー上に通知システムを作成して、特定のユーザーに関連するイベントが発生したときだけであることです。そのユーザーに送信され、何もデータベースを定期的にポーリングしません。どのようにするかは、アプリケーション、データストレージ構造、特定の適時性要件、およびその他のアーキテクチャ上の事項に大きく依存します。場合によっては、ポーリングなしで適切な種類の通知をサポートするようにバックエンドストレージを設計する必要があります。時間の99%がスケーラビリティを奪うものが見つからない場合、定期的にポーリングを行っています。 – jfriend00
:もし私が間違っていないならば、あなたは2種類のポリシングを作成するように頼んでいます.1つは通知専用で、もう1つはアプリケーションのfucationalityです。 – Meesam