¿Qué debo saber sobre la programación de chat?

Vea la respuesta de Sinchan Banerjee a ¿Es posible usar Parse.com para chatear en tiempo real (como Socket.io)?

Entonces, usarás Parse con PubNub entonces. Usted va al sitio de PubNub, y luego en “Desarrolladores”> “Demos”, el primer enlace lleva aquí – Cree aplicaciones de chat en tiempo real en 10 líneas de código.

Cada cliente notifica a otros clientes que está escribiendo interceptando los otros códigos de tecla además de 13 (que es enter), y usándolos para mantener un temporizador, para enviar un mensaje “Estoy escribiendo” a todos los demás usuarios en el canal. cada 10 segundos, si el usuario ha presionado alguna tecla en los últimos 10 segundos. Este mensaje será un mensaje especial que su programa de chat interceptará y luego cambiará la IU en función de él en lugar de mostrarlo como un mensaje. Tendrá que encontrar una manera de distinguir tales “mensajes de control” del texto de chat real.

Parse entra cuando algún usuario está desconectado. Tendrá que encontrar una manera de reconocer cuándo se ha recibido cada mensaje; Creo que cada cliente podría enviar una confirmación para cada mensaje recibido (utilizando el mecanismo de “mensajes de control” anterior). De esta manera, si la conexión de alguien se cae, no se desconectará de inmediato (hay un tiempo de espera), pero no confirmará la recepción del mensaje, por lo que puede almacenarlo en la base de datos de Parse y enviar una notificación push a ese usuario que recibió un mensaje sin conexión

EDITAR: Oh, puede usar las confirmaciones de recibo para mostrar un pequeño “mensaje leído” gris, como Facebook 🙂

probablemente necesitará usar el servicio de chat XMPP además de Parse. Recomendaré layer.com o quickblox.com

El algoritmo es simple: almacena datos en análisis y utiliza los servicios de chat XMPP cuando necesita comunicación en tiempo real, como enviar un mensaje, enviar un recibo de lectura, actualizar que el usuario está escribiendo y dejó de escribir. Usted registra al usuario en análisis y lo clona en estos servicios. Luego, cuando el usuario está escribiendo, envía otro mensaje de usuario que dice que estoy escribiendo

La diferencia entre los servicios de análisis y XMPP es que, en la mayoría de los casos, extrae los datos del análisis y el backend no envía información. La única excepción es cuando parse envía notificaciones push, pero no será apropiado usar notificaciones push en su caso. Por otro lado, los servicios de chat XMPP pueden enviar a los usuarios cualquier información en tiempo real, ya que mantiene la conexión con el dispositivo del usuario después de que se crea la sesión.

More Interesting

¿Por qué los finalistas de Topcoder no comparten su experiencia en los tutoriales de YouTube para principiantes? Cualquier principiante agradecería la ayuda para desarrollar sus habilidades para resolver problemas.

Cómo usar un algoritmo para resolver problemas de la vida real

¿Dónde debo comenzar si quiero aprender estructuras de datos y algoritmos?

¿Qué debo hacer después de aprender Python? ¿Programación competitiva o aprender Djanjo o aprender algoritmos y estructura de datos en Python?

Teoría de grafos: ¿en qué se diferencian los árboles de expansión construidos a partir de Prim de los árboles de expansión construidos a partir de Kruskal?

Cómo mejorar si he pasado 10 años aprendiendo programación pero aún no puedo resolver la mayoría de los problemas de algoritmos

Cómo resolver este problema de integración definitiva

¿Cuáles son los 5 mejores algoritmos esenciales (excepto la clasificación) que todo programador debe saber?

¿Cuál es tu recurso favorito para aprender sobre programación competitiva?

Cómo inicializar una matriz de cadenas en una clase

Alguien en mi escuela secundaria dijo que en realidad no puedo resolver un cubo de Rubik porque tengo que confiar en patrones (algoritmos). ¿Cuán verdadera es esta afirmación?

¿Cómo se resuelve The Great Ball (SPOJ - BYTESE2)? ¿A dónde voy mal?

Cómo hacer un bot de chat usando Python implementando algoritmos de aprendizaje automático (como SVM, Naive Bayes, Random Forest, etc.)

¿Cómo se usa el algoritmo babilónico?

Cómo abordar el problema 'Mapa intergaláctico' (IM) en SPOJ usando Max Flow