Mi cliente de chat flash basada no es lo suficientemente robusto? ¿Qué otra manera hay?

StackOverflow https://stackoverflow.com/questions/2373026

  •  24-09-2019
  •  | 
  •  

Pregunta

he desarrollado un cliente de chat basado en Flash que muestra los mensajes enviados por usuarios que pertenecen a un grupo junto con su nombre de usuario y la hora de escribir. Los datos se almacenan en una base de datos MySQL con el ID de grupo, ID de usuario y mensaje de modo que persiste más allá de las sesiones de chat y permite a los usuarios iniciar sesión en un momento posterior para ver las discusiones, menos de un chat, más de un tablón de anuncios. Cuando un usuario escribe un mensaje Quiero que los clientes de chat para actualizar al instante un parecen ser de chat en tiempo real. Mi solución ha sido hasta ahora para incluir un intervalo en mi código flash que llama a una página PHP que consulta la base para los nuevos comentarios y regresar esta a Flash.

creo que de lo que he leído que este enfoque se denomina tiempo de votación? ¿está bien? Es esto lo suficientemente robusta como para el volumen? ¿Estaría mejor mirando empujando los datos al cliente cuando hay cambios? ¿Cómo puedo detectar estos cambios? He mirado APE por ejemplo, pero yo no creo que este almacena los mensajes en una base de datos.

¿Alguna sugerencia?

¿Fue útil?

Solución

Lo malo de interrogación es, puede llegar a ser costoso bastante rápido.

Vamos a suponer, que tiene 10000 usuarios, que quieren el chat para tener un retraso no mayor de 1 segundo. A continuación, se Youn bombardear su servidor con 10.000 solicitudes por segundo.

para las cosas más pequeñas o cosas que no necesitan ser actualizados, la votación es una aproximación buena, ya que su sencilla y realmente no puede ir mal.

Si esto es sólo para una comunidad pequeña con capacidad de 100 personas usando el chat, entonces este no debe ser el problema.

aparte de eso, se podría utilizar APE o SmartFox o Red5 o un montón de cosas diferentes para crear un servidor de retransmisión persistente, es decir, un servidor que tiene conexiones permanentes a todos los clientes y les notifique de cualquier cambio (por ejemplo, mensajes nuevos) .

como siempre, mi consejo personal es usar Haxe . Se puede utilizar el de chat tutorial para empezar. Haxe tiene bastante empinada curva de aprendizaje, pero creo que vale la pena totalmente. Estoy feliz de haber dejado tanto con ActionScript y PHP atrás.

editar lo que usted describe no es sondeo largo . Además, casi no se puede hacer con PHP sondeo largo, al menos si se usa clásicamente con Apache. Apache creará un cierto número de procesos PHP. Cada vez que una petición llega, va a buscar un proceso de libre PHP y dejar que se procese la solicitud. Cuando se realiza el proceso de PHP, envía la parte posterior respuesta al cliente. Si no hay procesos de libre disposición, se almacenará la solicitud hasta que un proceso esté disponible. De este modo se podría bloquear por completo toda su servidor si se trató de hacer sondeo largo con PHP la manera clásica.

Otros consejos

Si quieres notificar a la aplicación cada vez que se recibe un nuevo mensaje, entonces se tendría que aplicar algún tipo de aplicación en el servidor para controlar la base de datos / ser alertados de los cambios en ella, y luego paso de actualizaciones a los clientes.

Esto debería ser más eficiente que acaba de votación, porque si se piensa en un escenario de tráfico bajo, con el sondeo se le golpeando al infierno fuera del servidor sin tener en cuenta - de esta manera que sólo está generando tráfico cuando hay una razón para ...

Cuando se escribe en un comentario, su cliente podría notificar esta aplicación directamente (a través de un servicio web) del cambio, y esta aplicación ayudante entonces podría actualizar la base de datos ...

Hay que decir, aunque no soy un experto en programas de chat - nunca se ha involucrado en uno personalmente ...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top