2010-10-04 12 views
6

Mi idea es hacer un sitio web, donde las personas puedan registrarse y buscar personas para hablar. Pueden elegir personas de cierto país, género, con cierta edad, etc.Implementando un chat al azar entre personas

Sí, sé que hay muchos sitios web como este, pero quiero implementar esto, porque parece realmente desafiante.

¿Puede darme ideas sobre cómo puedo implementar esto usando PHP + MYSQL + Jquery (Ajax)? No soy ni un principiante ni avanzado con estas cosas.

Entonces, ¿cómo debería funcionar esto? Una persona hace clic en el botón de búsqueda, esta persona se pone en la base de datos que busca a alguien para hablar, entonces, ¿qué sigue? También quiero poder permitir que las personas hablen con algunas personas al mismo tiempo.

No estoy pidiendo un código o algo así, solo ideas sobre cómo codificarlo, sin código necesario.

Gracias.

+4

¡Gracias por la idea de mi nuevo sitio web! bwahahahahaha :) – Drewdin

+0

javascript mataría su ancho de banda, debo decir. Sin embargo, debe considerar muchas cosas en mi respuesta a continuación. – Val

+0

@Drewdin: Hm, realmente no quiero decepcionarte, pero ya hay muchos sitios web como este. :) De todos modos, buena suerte. –

Respuesta

11

No creo que un lenguaje de programación síncrono y de bloqueo como PHP sea la plataforma adecuada para dicha aplicación. Era mucho más inteligente elegir un lenguaje asíncrono y sin bloqueos como JavaScript. Esto tiene la gran ventaja de que puede usar Long Polling, lo que mejorará la experiencia de chat en su aplicación.

Por lo tanto, recomiendo implementar esto usando NodeJS. Es posible que desee mirar an implementation of a simple chat en el nodo.

+4

¿Desde cuándo PHP es un lenguaje 'bloqueador' y 'javascript' un lenguaje no bloqueador? ¿O lo estás sugiriendo porque PHP está en el lado del servidor y Javascript está en el lado del cliente? Editar: Ya veo, estás anunciando para NodeJS – smirkingman

+2

Llegué tarde. +1 para Node.js solo hará que el chat funcione sin problemas y tenga pocos recursos, puede manejar fácilmente miles de usuarios simultáneos en un solo vps, además hay módulos que manejarán Twitter OAuth, etc. por lo que ni siquiera tiene para usar una base de datos si no quieres y puedes simplemente usar proxy para las conversaciones con algo como Socket.io – stagas

4

Haz un depósito para cada unidad organizativa (país, género, edad, etc.).

Cuando se conecta un uso, proporcióneles un índice incrementalmente mayor para cada categoría a la que pertenecen.

Cuando un usuario quiere conectarse con alguien desde un cubo, simplemente genere un nuevo número aleatorio entre 0 y el valor de índice máximo para el segmento ... ¡y conéctelos!

0

Puede utilizar Orbited (junto con js.io para el navegador) y, o bien XMPP o IRC como el sistema subyacente. Esos dos proporcionan una sólida infraestructura de chat que le permitirá implementar cualquier función que necesite, por ejemplo, chat grupal.

2

Creo que usar PHP + MySQL está bien. Te sugiero que uses los servicios push para mejorar aún más el entorno de chat. Con push, su cliente no tiene que solicitarle al servidor que obtenga nuevos datos + hace que el chat sea en tiempo real. Algunos de los servicios push son: PusherApp, Kwwika, Hookbox y BeaconPush. Tienen un gran soporte, documentación y bibliotecas. Buena suerte.

1

No creo que un marco sofisticado sea una buena solución para este tipo de aplicación. Sugiero que se quede con un javascript/jquery básico para el lado del cliente ... y php para el lado del servidor. El único problema que puede encontrar es que necesitará una solución de base de datos muy robusta, suponiendo que tienen como objetivo al menos algo de tráfico, y SOLAMENTE si necesita almacenar un archivo de los mensajes, en este caso sugeriría Oracle (conocido por trabajar muy bien con grandes bases de datos, pero no es gratuito). Si no es así, MySQL (gratis) funcionará bien en alto tráfico con bases de datos relativamente pequeñas.

Básicamente, la idea sobre la que se basaría su aplicación es simple .. se puede hacer una tabla con los usuarios, otro con los mensajes, las preferencias ... etc sobre el lado del cliente ... acaba de actualizar la página cada 3 -5 segundos, o permita que el usuario especifique la velocidad, y actualice la página web con nuevos mensajes/usuarios/reques ... etc., si corresponde. Una vez que un usuario se apaga, puede eliminar todo lo relacionado con su actividad de la base de datos, esto ahorraría algo de espacio.

Espero que haya entendido mi Inglés, Best Regards.

1

¿Puede darme ideas sobre cómo puedo implementar esto usando PHP + MYSQL + Jquery (Ajax)? No soy ni un principiante ni avanzado con estas cosas.

Si usted es lo que dice que es, entonces creo que no sabe nada de la tecnología que pretende utilizar. Entonces, en este caso, le sugiero que lea un poco primero, trabaje con algunos ejemplos simples y luego continúe desde allí. Por ejemplo,

  • de inicio con PHP artículos de procedimientos - aprender la sintaxis
  • Crear una página web sencilla - Cree su primer sitio web
  • mySql artículos de procedimientos - Aprender consulta/sintaxis
  • Agregar una base de datos MySQL, posiblemente, ejecutar operaciones CRUD simples
  • Leer acerca de las aplicaciones de chat - Trabajo/internos, diferentes arquitecturas puede seguir
  • Prepare una pequeña aplicación cliente/servidor basada - diferentes protocolos que se utilizan

... y entonces cuando comienza a sentirse cómodo con el código es cuando se inicia pensar en el código, pasar a la plena charla-plicatura hecho y derecho!

Puede terminar retorciendo su idea original, pero no se preocupe, es la parte del proceso. Las cosas cambian a medida que vemos una imagen más clara de lo que queremos exactamente.

Incluso si planea utilizar las bibliotecas/controles abiertos existentes, debe saber cómo usarlos; deberías obtener suficiente habilidad como para saber que un clavo debe ser martillado pero no lo es de otra manera.

Además, veo esta fase de extremo a extremo de alrededor de 2 a 3 meses, si se hace con dedicación.