RESTHeart WebChat
Questo esempio usa Angular 12 e RESTHeart's WebSockets con Change Streams per fornire API istantanee con zero linee di codice, utilizzate come base per realizzare un'applicazione di chat in tempo reale. Basta inserire un nickname qui sotto per iniziare a giocare con la demo:
Nota: l'applicazione di cui sopra è una demo in costante sviluppo, quindi l'implementazione può cambiare ogni giorno. È inclusa qui tramite un tag <iframe>
, ma l'applicazione web completa è disponibile su https://chat.restheart.org.
Il codice sorgente completo di questa applicazione web Angular è disponibile su GitHub.
Come funziona?
In breve, RESTHeart sfrutta i Change Streams di MongoDB per notificare istantaneamente le modifiche del database ai client (Web o app mobili), attraverso il protocollo WebSocket.
RESTHeart è un runtime open-source e un SDK low-code per microservizi con sicurezza dichiarativa e API di dati istantanei su MongoDB o qualsiasi database compatibile (ad esempio Percona Server per MongoDB, AWS DocumentDB e Azure Cosmos DB).
Espone immediatamente tutte le capacità di MongoDB attraverso un set completo di REST, GraphQL e WebSocket APIs. RESTHeart incorpora Undertow, un web server flessibile e performante scritto in Java, che fornisce API bloccanti e non bloccanti basate su NIO.
Gli sviluppatori possono risparmiare almeno l'80% di codice backend per gestire la sicurezza e servire contenuti alle Mobile Apps e Angular, React, Vue o altri framework SPA.
Ingredienti
L'API WebSocket (WebSockets)
L'API WebSocket è una tecnologia avanzata che permette di aprire una sessione di comunicazione interattiva bidirezionale tra il browser dell'utente e un server. Con questa API, è possibile inviare messaggi a un server e ricevere risposte basate su eventi senza dover eseguire il polling del server per una risposta._
MongoDB Change Streams
I change streams permettono alle applicazioni di accedere ai cambiamenti dei dati in tempo reale senza la complessità e il rischio di seguire l'oplog. Le applicazioni possono usare i change streams per sottoscrivere tutti i cambiamenti di dati su una singola collezione, un database o un intero deployment, e reagire immediatamente ad essi. Poiché i change streams utilizzano il framework di aggregazione, le applicazioni possono anche filtrare per cambiamenti specifici o trasformare le notifiche a piacimento.
RESTHeart WebSockets
RESTHeart incorpora un'implementazione del server WebSocket che permette di esporre i Change Streams di MongoDB ai browser web e a qualsiasi tipo di client HTTP/WebSocket (per esempio, Postman offre questa funzionalità).
Con RESTHeart è possibile creare applicazioni Web o Mobile che possono essere notificate in tempo reale e in modo asincrono delle modifiche dei dati, evitando il polling non necessario. Poiché i flussi di cambiamento utilizzano il MongoDB's Aggregation Framework, le applicazioni possono anche filtrare per specifici cambiamenti.