Guida alla definizione dell'architettura: messaggistica asincrona; app web come portale nella pagina web

0

Non so se questa è un'architettura legittima con cui ho giocato. Consiste di server nodejs per servizi e per creare front-end per app web. E sta usando la messaggistica asincrona (Redis) per comunicare tra i servizi. E socket.io per implementare comunicazioni full duplex tra server e app web.

Finora nel mio esempio app "stock portfolio" funziona come desiderato (implementazione semplice con dati inventati).

L'obiettivo di questa architettura è di essere completamente disaccoppiato attraverso l'uso della messaggistica. I servizi seguono alcune API / Protocollo e possono pubblicare e iscriversi ai canali desiderati. Quindi questo porta a implementazioni alternative di servizi e ci sarà un qualche tipo di broker per gestire queste situazioni. Non sono all'altezza.

Sono bloccato ad avere più app web che esistono all'interno o una accanto all'altra. Per esempio ce n'è uno che è per la gestione del portafoglio in cui gli utenti possono entrare in azioni che possiedono. E un altro che gestisce i fondi. E un altro che visualizza i dati per tutti questi. E un altro per i grafici. L'intenzione è che questi siano anche liberamente accoppiati.

Al momento ho una app React che visualizza grafici da dati forzati (aggiornati dinamicamente e ridisegnati tramite socket.io ).

Come faccio a creare app Web incorporate che devono essere dinamiche? Se il server delle app web era conosciuto in precedenza, potresti aggiungere l'url in <iframe . Ma l'intenzione è che qualche servizio fornisca l'app web e dovrebbe inviare un messaggio che dice "ecco l'url per la mia app web" che voglio mostrare.

Suona sensato? Qual è il modo migliore per realizzare le app web multiple? Ci sono esempi di questo?

Per quanto riguarda i problemi di sicurezza (ho solo pensato di definire i miei servizi e non di aprirlo a Internet, ma potrei voler consentire un approccio più flessibile)?

    
posta HankCa 03.07.2018 - 15:11
fonte

1 risposta

0

Non ho avuto alcuna trazione su questa domanda qui, quindi ho chiesto la pura tecnica al link e ha ricevuto una risposta accettata a questo - link .

render() {
   const { iFrameSrc } = this.state    
   // if You have the source, return the iframe
   if (iFrameSrc) return <iframe src={iFrameSrc} />

   // if you dont have the source, render default
   return null;
}

Speravo anche in alcuni commenti sull'architettura. Ci lavorerò un po 'prima.

    
risposta data 06.07.2018 - 12:25
fonte