0

Я пытаюсь добавить систему уведомлений. Если пользователь входит в систему и выполняет действие, уведомление должно быть отправлено другому пользователю, если он вошел в систему. Я сделал свое приложение в node.js с помощью express. Я знаю, что мне нужно использовать сокет, но как нужно обрабатывать событие? Если кто-то может сообщить мне какую-нибудь ссылку или образец, который я могу выполнить для этой задачи?Внедрение системы уведомлений с использованием node.js, express, socket

+0

Это не ясно, какая часть является отсутствует. В моем чате событие обрабатывается клиентом socket.io, и я использую API [Уведомления] (https://developer.mozilla.org/en/docs/Web/API/notification), чтобы отобразить его пользователю ([ соответствующий код] (https://github.com/Canop/miaou/blob/master/src%2Fmain-js%2Fmiaou.horn.js#L65)) –

+0

@NKMY вы что-то попробовали? Или вы хотите знать, как работает сокет? –

+0

Вы можете прочитать это как ссылку http://www.gianlucaguarini.com/blog/nodejs-and-a-simple-push-notification-server/ Короче говоря, вам необходимо поддерживать глобальный список пользователей в Интернете и их соответствующее соединение сокета. Таким образом, всякий раз, когда пользователь делает какие-либо действия, вы можете использовать глобальный список для выбора целевого пользователя. –

ответ

1

я только что сделал что-то подобное и обрабатывается так:

io.js - файл центральный node.js где обрабатывать новые connnections и магазин И.О.

var io = require('socket.io')(); 

io.on('connection', function(socket){ 
console.log("Socket established with id: " + socket.id); 

socket.on('disconnect', function() { 
    console.log("Socket disconnected: " + socket.id); 
}); 

}); 

module.exports = io; 

someroute.js - где-то в серверном приложении node.js я хочу исправить сообщения

var appRoot = require('app-root-path'); 
var io = require(appRoot + '/server/io'); 

/*your code, somwhere you will call the 
* function below whenever you want to emit 
* the 'user_did_action' event: 
*/ 
if(user.didNewStuff()){ 
emitUserAction(user); 
} 

var emitUserAction = function(user){ 
    io.sockets.emit('user_did_action', user); 
}; 

client_javascript.js - некоторые клиентские JS (в моем случае угловой, но doesent материя), импортировать Socket.io LIB, затем получить доступ где-то в клиенте так:

/*connect to the server*/ 
var socket = io.connect(); 

/*do something wen the event 'user_did_action' 
* is received, just invoke the callback 
* 
*in the function param data, you will have the same 
*data you emitted earlier in the server, 
*in this example the user object!*/ 
socket.on('user_did_action', myFunctionToHandleTheEvent(data)); 
+0

Спасибо за помощь. Вы знаете какую-либо ссылку или пример класса утилиты для этого уведомления сокета. – NKMY

+1

[Здесь] (https://codeforgeek.com/2015/09/real-time-notification-system-using-socket-io/) вы можете найти достаточно подробный учебник/пример приложения-уведомления с использованием node.js и socket.io – risuch

+0

Спасибо @risuch за ссылку. – NKMY

Смежные вопросы