sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Cómo enviar notificaciones con angular.js?

Dado que está en la pila MEAN, la recomendación estándar en Node sería utilizar la API de Socket.IO.

Brindan el siguiente ejemplo de mensajería bidireccional (que facilitaría sus mensajes push muy fácilmente):

Cliente

<script src="/socket.io/socket.io.js"></script>
<script>
  var socket = io.connect('http://localhost');
  socket.on('news', function (data) {
    console.log(data);
    socket.emit('my other event', { my: 'data' });
  });
</script>

Servidor

var app = require('http').createServer(handler)
  , io = require('socket.io').listen(app)
  , fs = require('fs')

app.listen(80);

function handler (req, res) {
  fs.readFile(__dirname + '/index.html',
  function (err, data) {
    if (err) {
      res.writeHead(500);
      return res.end('Error loading index.html');
    }

    res.writeHead(200);
    res.end(data);
  });
}

io.sockets.on('connection', function (socket) {
  socket.emit('news', { hello: 'world' });
  socket.on('my other event', function (data) {
    console.log(data);
  });
});

Utilizará websockets siempre que sea posible y recurrirá al sondeo largo de AJAX o al sondeo Flash en navegadores que no admitan websockets.

En cuanto a la integración con Angular, aquí hay una buena publicación de blog sobre Socket.IO y Angular:

Estaré escribiendo sobre cómo integrar Socket.IO para agregar funciones en tiempo real a una aplicación AngularJS. En este tutorial, voy a explicar cómo escribir una aplicación de mensajería instantánea.