En el desarrollo de software, existen mejores prácticas, pero no son esencialmente las mejores formas de hacer las cosas, ya que podrían ser bastante relativas a los sistemas y la estructura circundante de la aplicación, además de estar influenciadas por preocupaciones comerciales como el costo del ancho de banda, si eso fuera una preocupación.
Después de haber trabajado en varias redes sociales, lo único que comparten son feeds y chat. También comparten el problema del tiempo de inactividad del usuario prolongado del que está hablando, pero afortunadamente eso es mucho más fácil de resolver hoy en día en desarrollo web. Cuando habla de un índice de inicio con un conteo, está hablando de un cursor o puntero para buscar en una serie.
Lo primero que debe tener en cuenta es el tipo de índices. Si está basado en números enteros y se incrementa automáticamente de forma similar a los modelos tradicionales OOP y MVC en una aplicación CRUD, entonces simplemente puede contar a través del siguiente número y usarlo como su base. Sin embargo, si está utilizando números de identificación UUID / GUID para sus elementos de feed o si son una colección de datos o registros (tales identificadores de documentos para una capa de almacenamiento de documentos como MongoDB), entonces tiene una identificación basada en caracteres y necesita usar un Método alternativo que describiré a continuación.
La sincronización entre un cliente y un servidor debe realizarse según la cronología si se basa en una serie de tiempo. Esto se logra mejor mediante el enfoque que está utilizando utilizando la marca de tiempo en el elemento para realizar una consulta desde. Pase la marca de tiempo del último elemento recuperado a su back-end y úselo para determinar qué entregar a continuación. Este es uno de los métodos más comunes para mantener las cosas sincronizadas de una manera que no omita elementos en una serie, independientemente del tiempo de inactividad entre consultas.
- Quiero trabajar en consultoría y análisis de redes sociales, entre IBM o Accenture, ¿qué compañía es mejor para comenzar mi carrera?
- Quiero importar listas de contactos de redes sociales (Facebook, linkedin, etc.) en mi aplicación web. ¿Tenemos un archivo de gemas en Ruby?
- Estoy buscando escritores de blogs técnicos que puedan escribir un blog todos los días sobre temas como desarrollo web, diseño, SEO, análisis, PPC y redes sociales. ¿Dónde los encuentro?
- Estoy pensando en desarrollar una plataforma de redes sociales con el objetivo de que se convierta en uno de los sitios web más utilizados en África para guiar a su población que se rezagó con la educación y la interacción social en general. ¿Cómo debo proceder?
- Acabo de crear mi primer blog en Digital Profit Course. ¿Cómo puedo promocionar un blog en las redes sociales?
En lo que respecta a la entrega del feed, hay un par de formas de administrar las cosas, pero este es el enfoque que normalmente adopto.
1.) El usuario está actualmente activo. Están conectados al servicio de entrega de alimentación a través de un zócalo web que les enviará nuevos elementos a medida que lleguen.
2.) A medida que aumenta el tiempo de inactividad del usuario, degrada de un socket web a sondeo largo para reducir el número de sockets web abiertos en todo el sistema.
3.) Una vez que el tiempo de inactividad haya llegado al punto en que el usuario pueda considerarse inactivo, almacene el último feed recibido en el almacenamiento local o cookie como reserva en caso de que se cierre la sesión del navegador. También puede almacenar esto junto con el perfil del lado del servidor de los usuarios si tienen uno para poder sincronizarlo entre dispositivos. Luego, en la página abierta, adjunte un detector de eventos de mousemove para volver a activar la conexión de socket web si el usuario regresa y repita el proceso.
Hay varias bibliotecas de AngularJS que pueden ayudar con la gestión de sockets y el almacenamiento local con respaldo. Espero que esto ayude, si no, avíseme si tiene alguna otra pregunta o inquietud.