Che cosa è una buona implementazione di un programma di chat peer-to-peer con un server per l'assegnazione di connessioni in C ++?
-
06-09-2019 - |
Domanda
Per un po ', mi sono interessato a creare un programma di proof-of-concept di chat utilizzando C ++. Ho dato l'idea di un sacco di pensiero e anche scritto giù gli inizi di come vorrei progettare il sistema, ma ho colpito una barriera nel mio pensiero quando si tratta di l'attuazione.
Voglio sapere che cosa l'implementazione di un client di chat peer-to-peer con un server per le connessioni di percorso sarà simile in C ++.
Il server potrebbe essere utilizzato come un registro centrale dei coetanei, ma non utilizzata come connessione primaria. Il server non interagire con i clienti in qualsiasi modo tranne che per assegnare le connessioni tra coetanei per ottenere un percorso ottimale tra coetanei. In una prima versione, sarebbe solo essere una directory a cui tutti i client si connettono, ed i clienti possono quindi utilizzare la directory per collegarsi agli altri client disponibili per la chat. (Spero che spiega un po 'più). :)
Soluzione
Si dovrebbe guardare il roba XMPP . Si tratta solo di routing e di messaggistica di coordinamento. Esso utilizza de-centralizzazione e un peer peer-to-come l'architettura.
Ci sono anche un sacco di implementazioni open source. Ad esempio,
Altri suggerimenti
Non posso davvero pensare a qualcosa di meglio che l'esempio la chat in la documentazione Boost.Asio. Cerca la documentazione esempi Boost.Asio.