Costruisci un'applicazione di chat in tempo reale che memorizza i messaggi in un database MySQL

1

Sto pensando di creare un'app di chat in tempo reale che mi consenta di archiviare i messaggi degli utenti in un database MySQL. Finora queste sono le due idee che ho.

1) Crea e API a cui il messaggio viene inviato e quindi salvato nel database. Dopo che il messaggio è stato salvato nel database, viene inviata una notifica push alla persona che riceverà il messaggio e quindi viene eseguito uno script in background per scaricare il messaggio dal database.

2) Usa websocket o XMPP per consentire ai messaggi di essere inviati e ricevuti dal server e basta salvare il messaggio nel database MySQL quando raggiunge il server.

Quale di questi metodi sarebbe meglio implementare e ridimensionare per un'applicazione di chat in tempo reale. Il metodo uno sembra piuttosto buono, ma non sono sicuro che se le transazioni SQL costanti sono buone per un server, il carico utile potrebbe essere troppo.

EDIT!

Quindi, dopo aver fatto qualche altro scavo, vedo che posso usare XMPP con i socket Web o con HTTP per creare la mia app di chat in tempo reale. La mia domanda è quale sarebbe un modo semplice ma efficace per salvare questi messaggi in un database MySQL.

    
posta ThatOneQuestionn 13.01.2018 - 04:33
fonte

2 risposte

1

Which one of these methods would be best to implement and scale for a realtime chat application. Method one seems pretty good but I'm not sure if constant SQL transactions are good for a server, the payload might be too much.

Sembra che uno dei tuoi principali requisiti sia la tecnologia del tuo sistema per essere scalabile.

In tal caso, potresti voler passare a piattaforme Big Data come Apache Kafka, Apache flume o RabbitMQ.

In tal caso, consiglierei di dare un'occhiata ad Apache Kafka per creare una pipeline scalabile in cui:

  1. Un processo riceve query SQL dai dispositivi mobili. (Produttore Kafka)
  2. Un gruppo di server esegue la transazione SQL e risponde al dispositivo mobile. (Consumatori di Kafka)

L'API di Kafka ti permetterà di configurare facilmente questa pipeline . Mentre le cose possono diventare più sofisticate, spero di averti dato un'idea di come potresti aumentare il tuo servizio.

Inizia con Apache Kafka: link

    
risposta data 17.01.2018 - 11:07
fonte
0

Dovresti dare un'occhiata a Firebase. Risolve molti dei tuoi problemi. L'applicazione di chat è pronta all'uso. Puoi personalizzarlo entro un'ora o due.

link --- > "Aggiungi chat alla tua app" o link

Ci sono anche SDK per IOS e Android.

    
risposta data 17.01.2018 - 23:58
fonte

Leggi altre domande sui tag