ユーザーに通知を送信しようとすると、ユーザーがソケットにログインして通知カウントを照会し、通知が開かれると、将来の通知がソケット セット プロセスにスローされ、現在のカウントがインクリメントされるシステムを作成したいと考えています。カウントを 0 にリセットし、ソケットが閉じられると、カウントがデータベースに保存され、データベースは通知カウントの保存だけに戻る必要があります。
node.js と mongodb サーバー側を使用しています。
これが私が現在持っているコードで、socket.ioに変換しようとしています
exports.notificationsNumber = function(req, res) {
console.log('notifying start');
Notification.findOne({userId: req.signedCookies.userid}, function(err, user) {
if(err) {
res.send(err);
console.log('notifying err');
} else {
console.log('notifying');
var notify = user.notifications;
res.json(notify);
}
});
};
App.js ファイル:
app.get('/notificationsNumber', user.notificationsNumber);
var io = require('socket.io');
var connect = require('connect');
var notificationsN = io.listen(server);
notificationsN.sockets.on('connection', function(socket) {
socket.emit('entrance', {message: 'send notifications Count'});
socket.on('set nickname', function(name) {
socket.set('nickname', name, function() {
socket.emit('ready');
});
});
socket.on('disconnect', function(){
notificationsN.broadcast.emit('exit', {message: 'close connection'});
});
});