Ver Mensaje Individual
  #26 (permalink)  
Antiguo 27/03/2006, 08:47
Avatar de kalijunfan
kalijunfan
 
Fecha de Ingreso: febrero-2004
Ubicación: Montevideo, Uruguay
Mensajes: 96
Antigüedad: 20 años, 3 meses
Puntos: 0
Cita:
10 millones
pues acá se termina la discusión sobre lengüaje de programación del servidor :)

para manejar esta cantidad de usuarios no tenés otra opción que tener un servidor dedicado, sea en tu propia casa o contratado pero es la única opción, y en ese caso creo que todos estamos de acuerdo en que el lengüaje más potente de programación que podés usar es C++

ahora con respecto al protocolo se le puede sacar bastante trabajo al servidor. vos mencionás envío de archivos y conversaciones, eso se puede hacer directamente de usuario a usuario sin necesidad de usar el servidor para eso. y en cuanto a autorizaciones e identificaciones, pues a eso me refiero con usar nuestro propio protocolo. creo que ese siempre es el problema con los programas del guille puertas, se complican la cabeza innecesariamente.

o sea, vamos a resumir la idea. si yo fuera a hacer un chat al estilo msn lo que haría sería lo siguiente:

1. un form principal que pida la información de usuario para conectarse, con las opciones de recordar los datos y de registrar una cuenta nueva si no es usuario del servicio.

2. en una base de datos en el servidor guardo la información del usuario junto con su ip actual y su estado actual.

3. una vez que el usuario se registró y se conectó al servicio muestro la ventana principal del programa con una lista de sus contactos autorizados obteniéndolos de una base de datos del servidor evidentemente. y si tiene usuarios sin autorizar le pido autorización para cada uno de ellos. para mostrar la lista de contactos obtengo, la primera vez que cargo el form, una lista extendida con los nombres de usuario a mostrar con sus respectivos id autonuméricos de la base de datos y su estado inicial. luego periódicamente verifico el estado de todos mis contactos usando solamente su id para consultar al servidor. en ese mismo form iría un control winsock que haría la función de "servidor local" por así decirlo verificando si hay alguien queriendo charlar con nosotros.

4. si alguien quiere charlar con nosotros abro una ventana de chat, mostrando los datos de quien está chateando conmigo que los obtuve de la base de datos del servidor usando su dirección ip. en esa ventana de chat pondría dos controles winsock uno para envío y otro para recepción obviamente y la conversación la haría directa entre los dos usuarios, igual que el envío de archivos, sin necesidad de usar el servidor para ello.

5. si yo quiero charlar con alguien hago un doble click en el usuario de mi lista de contactos, con su id obtengo la ip actual de la base de datos del servidor y abro una ventana de chat usando esa ip la cual me va a permitir establecer una conexión directa con el otro usuario y así sacandole trabajo al servidor para las conversaciones y envío de archivos.

básicamente esa es la idea, bastante resumida, no sé a vos que te parece.