Soy front end desarrollando un sitio de redes sociales. ¿Cuál es la mejor manera de mantener actualizado el feed? ¿Cuál es la mejor manera de manejar al usuario que permanece inactivo durante horas o días y luego regresa?

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.

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.

Permítanme responder esta pregunta ya que he resuelto este problema muy recientemente para la aplicación de micro video de lapso de tiempo QuiQ (eche un vistazo aquí Página en quiqapp.com, en beta privada). Estos son diferentes factores a considerar al construir los feeds de los usuarios.

1. ¿Qué feeds mostrar cuando el usuario se registra por primera vez?

Para la aplicación QuiQ, los usuarios pueden seguir a sus amigos a través de Twitter y Facebook y el propio QuiQ. Pero por primera vez, se mostrará al usuario un conjunto de QuiQ de tendencia que se pueden almacenar en caché.

2. Cómo definir una sesión de usuario para que a los usuarios se les muestre una secuencia de videos durante esa sesión.

Mantenemos la sesión en el cliente (aplicación IOS), que expira después de 30 minutos de inactividad. Si el usuario regresa después de 30 minutos, lo iniciaremos desde el principio. En el servidor mantenemos dos punteros que apuntarán a la parte superior e inferior de la pila de video. Cuando el usuario navega en una sesión, el punto inferior se moverá hacia abajo y cuando la sesión se restablezca, reiniciaremos top = bottom.

3. ¿Cómo mostrar un nuevo QuiQ agregado durante una sesión de navegación?

La verificación de back-end para cualquier QuiQ nuevo durante cada solicitud con QuiQ Id mayor que la parte superior. Si se publica un nuevo QuiQ durante la sesión, la parte superior apuntará a una nueva posición.

Hasta ahora, este enfoque nos ha funcionado. Nuevamente, estamos mejorando la lógica de alimentación basada en diferentes parámetros de usuario. Por favor, siéntase libre de registrarse para su interés beta aquí Página en quiqapp.com

Puede usar Websockets, por lo que no necesita seguir preguntando al servidor: “¿tiene publicaciones más recientes?” “¿Tienes nuevas publicaciones?” “Vos si …”

More Interesting

Necesito recopilar reseñas de Yelp, Yahoo, Google+ y Facebook y enviarlas a la página de ‘reseñas’ de mi sitio web. ¿Qué programas harán esto por mí?

He creado una página de Facebook, publico publicaciones de blog y promociono la página de Facebook, así como aumentar mis publicaciones cada día. ¿Existe una guía de mejores prácticas sobre cómo medir la efectividad de mi campaña?

Si deseo desarrollar una aplicación web que tenga una función como las redes sociales (como carga de progreso, botón de interfaz de usuario, soporte en la web y dispositivos móviles) basada en Java o PHP, ¿qué debo usar para el marco?

Estoy a punto de lanzar mi aplicación de red social. Si tuviera 15 millones de usuarios activos diarios utilizándolo durante veinte minutos cada día, ¿qué debería esperar en ingresos de Addy (cifra aproximada, por supuesto)?

¿Por qué necesito tener una cuenta en este sitio web?

Si me desconecto de las redes sociales, ¿me desconecto de la sociedad?

Tengo que hablar sobre las redes sociales y la libertad de expresión que conlleva. De que hablo

Quiero compartir las historias de personas mayores que entrevisté a lo largo de los años y descubrí sus excelentes experiencias y decisiones. ¿Cuáles serían las mejores redes sociales para hacer esto?

Estoy mirando una imagen para mi blog. Sé dar crédito. Si tienen la opción de compartir en las redes sociales, ¿en qué se diferencia eso de usarlo en un blog, si se les da crédito?

Quiero comenzar una casa de producción en mi ciudad, que es una ciudad grande y pequeña. Estoy buscando comenzar con una serie web que pueda hacer que te sientas en el borde. ¿Cuáles son algunas sugerencias?