1. Servidor
Push 2018
El presente documento nace de una investigación a la funcionalidad de
whatsapp, y su arquitectura de enviar mensajes y notificaciones.
Jonathan
Andrade o.
3. RoadTrack – Jonathan AndradeO.
Tecnología Push
Servidor
Ejabberd
Integración de back-end con API REST y herramienta de línea de comandos
ejabberdctl; bibliotecas móviles para iOS: XMPPFramework, Jayme REST API; bibliotecas
móviles para Android: Smack, Retrofit; biblioteca web con soporte WebSocket y respaldo
para soporte de BOSH: Strophe; Concurrencia masiva: 2 000 000 usuarios en 1 nodo.
Ejabberd simplifica la administración crítica a través de un módulo de administración
personalizable y fácil de usar para los administradores.
Mensajería simple, Intercambiar mensajes, cifrados de extremo a extremo; ni whatsapp, ni terceras
personas pueden leerlos, servidor de chat, servicio de mensajería instantánea, notificaciones
automáticas e interfaces móviles.
No se pierde ningún mensaje: para cada mensaje, el servidor XMPP verifica el estado de la entrega con
un acuse de recibo proporcionado por la aplicación móvil.
Mensajes copiados de carbono: el usuario final puede leer todas sus conversaciones en cada dispositivo.
Referencia:
https://www.process-one.net/en/ejabberd/
Comunicación
Reverse Proxy Apache
Además de ser un servidor web "básico" y proporcionar contenido estático y dinámico a los usuarios
finales, Apache httpd (al igual que la mayoría de los otros servidores web) también puede actuar como
un servidor proxy inverso, también conocido como una "puerta de enlace" "servidor".
Como httpd recibe una solicitud de un cliente, la solicitud se envía a uno de estos servidores backend,
que luego maneja la solicitud, genera el contenido y luego lo envía a httpd, que luego genera la
respuesta HTTP real al cliente.
Referencia:
https://httpd.apache.org/docs/2.4/howto/reverse_proxy.html
Libreria
Strophe
Es una colección de bibliotecas para hablar el protocolo XMPP. Si bien la mayoría de las bibliotecas e
implementaciones de XMPP se centran en aplicaciones basadas en chat, Strophe tiene una vista más
amplia. Se ha utilizado para implementar juegos en tiempo real, sistemas de notificación, motores de
búsqueda, así como la mensajería instantánea tradicional.
4. RoadTrack – Jonathan AndradeO.
Strophe.js es una implementación de JavaScript dirigida a clientes basados en navegador. Utiliza BOSH,
un enlace de XMPP a HTTP utilizando sondeo largo y WebSockets, una conexión de socket único de
dúplex completo a un servidor. Strophe.js facilita la creación de aplicaciones web en tiempo real.
Referencia:
http://strophe.im/strophejs/
Cliente
XMPP
Un cliente XMPP es cualquier software o aplicación que le permite conectarse a un XMPP para
mensajería instantánea con otras personas a través de Internet. Hay muchos clientes gratuitos que
puede usar para hacer esto, para muchos dispositivos y sistemas operativos diferentes.
Nota: El siguiente software no fue desarrollado por XMPP Standards Foundation y no ha sido probado
formalmente para el cumplimiento de normas, usabilidad, confiabilidad o desempeño.
Las especificaciones principales para XMPP se desarrollan en Internet Engineering Task Force (IETF) -
vea RFC 6120, RFC 6121 y RFC 7622 (junto con un enlace WebSocket definido en RFC 7395).
La XMPP Standards Foundation desarrolla extensiones para XMPP en su serie XEP.
Envio de anuncios a clientes conectados, no conectados.
Localizacion, Push subcribirse, entre otros extensiones.
Referencias:
https://xmpp.org/software/clients.html
https://xmpp.org/extensions/
Arquitectura Push
Gran parte de los cortafuegos están configurados para permitir el paso del tráfico TCP dirigido al
puerto usado por el protocolo HTTP, mientras que por lo general se bloquea el puerto utilizado por
XMPP. Para solucionar este problema, XMPP utiliza HTTP para permitir el acceso a los usuarios que
se encuentran tras cortafuegos. En las especificaciones originales, XMPP podía utilizar HTTP de dos
formas:
Polling:Ya no está en uso, básicamente se trataba de utilizar las funciones 'GET' y 'POST' de
HTTP para enviar los mensajes al servidor a intervalos de tiempo regulares.
Binding: Con este método, el cliente utiliza conexiones HTTP de vida más larga para recibir los
mensajes tan pronto como son enviados. Este modelo es más eficiente que el de polling.
WebSocket es una tecnología que proporciona un canal de comunicación bidireccional y full-
duplex sobre un único socket TCP. Está diseñada para ser implementada en navegadores y
servidores web, pero puede utilizarse por cualquier aplicación cliente/servidor.
Referencias:
https://es.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol
5. RoadTrack – Jonathan AndradeO.
Funcionamineto
https://www.slideshare.net/theconsumista/whatsapp-como-herramienta-de-marketing-para-empresas-
alfonso-alvarez-y-marga-orero-para-aulacm