Casa > Q > Que Tecnologias Devem Ser Consideradas Para Fazer Aplicações De Chat Como O Messenger E O Whatsapp?

Que tecnologias devem ser consideradas para fazer aplicações de chat como o Messenger e o WhatsApp?

Construir uma aplicação de chat como o whatsapp, fb messenger, hike, etc. envolve alguma configuração, mas para ter uma ideia da forma mais simples, leia abaixo.

A configuração completa é dividida em 3 blocos .

<
  1. Client facing app>li>Messaging Channel>li>Server setup/infra to handle messaging transactions at scale
>p>Em resumo a tecnologia envolvida seria

Client facing app

  1. >li>App ( que envolve toda a UI e a UX básica, Android/iOS/Windows) [Você pode usar bibliotecas aqui]>li>Base de dados para salvar dados no dispositivo/trabalho offline [SQLite/Real]li>li>Gerenciar estados para o dispositivo (i.e mudança de rede, chamadas, etc.) e responder para eventos baseados em mensagens [API dependente e disponível no SO de destino]>li>Manter uma conexão com o servidor ( via Sockets, XMPP, MQTT)li>li>Push Notifications[Firebase Cloud Messaging, Urban Airship, One Signal]
  2. [optional] Media ( video/picture) and location feature [Google Maps SDK, Android Media Framework API]

Channel

  1. Choose from Socket, XMPP or MQTT [Could be a mix of them too, depending on use case]
  2. Make sure of the use case ,
    1. mqtt is for mobile devices and iot (preferred, refer to Paho Project)
    2. socket if you have desktop app (preferred)
    3. xmpp can work in both depending on the scale (GCM uses this)

Server

  1. Setup an infra that takes care of saving messages as they come/go
  2. Load balancing on the server to manage scale when the number of connections increase/decrease
  3. Id management to know which connection to use between two Id, mantendo a lógica de mensagens>li>Tópicos de configuração para gerenciar a entrega de mensagens, bem como notas de empurrar>li>Gerenciamento de banco de dadosli>li> Manuseio de erros para ser resistente a mensagens perdidas e erros na rede>li>[opcional] configuração de criptografia de ponta a ponta , para manter a privacidade do usuário, se não ..certifique-se de que os dados não são enviados em texto puro por via aérea.
    >br>br>Para lidar com tudo o que foi dito acima, você tem que
    1. >li>##li>Code a lógica em um dos idiomas do lado do servidor. Os possíveis concorrentes seriam NodeJS, Erlang, etc.>li>li>Have a cloud infrastructure , possivelmente Google Cloud Platform/AWS/Azureli>li>API Specifications based of protocol (MQTT/XMPP/SOckets) used for messagingli>li>Database could be NoSQL - Mongodb/Aerospike or SQL>li>End-to-End encryption via the open source technology available OpenWhisper Systems>/ol>>>p>P.S : Esta é uma resposta simples , o que acontece é complexo e envolve muita compreensão de como gerenciar mensagens.

De Keese

Como eram as salas de chat na Internet nos anos 90? :: O que significa OP em chats?