Foros del Web » Programando para Internet » Python »

[SOLUCIONADO] Recomendación sobre hosting y sockets

Estas en el tema de Recomendación sobre hosting y sockets en el foro de Python en Foros del Web. Hola. Espero encontrar alguien que me ayude con esto. Estoy desarrollando un juego multiplayer online hecho en python. Tengo alguna experiencia con el desarrollo de ...
  #1 (permalink)  
Antiguo 17/02/2013, 22:42
 
Fecha de Ingreso: febrero-2013
Mensajes: 4
Antigüedad: 11 años, 2 meses
Puntos: 0
Recomendación sobre hosting y sockets

Hola. Espero encontrar alguien que me ayude con esto. Estoy desarrollando un juego multiplayer online hecho en python. Tengo alguna experiencia con el desarrollo de escritorio, de lo que no se absolutamente nada es de programación web (protocolos, servidores, frameworks etc ). Lo que necesito es implementar una relación cliente servidor (preferiblemente hecho en python ) eso ya lo hice a nivel local, el código es este:

#servidor:

import socket


serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
serversocket.bind(("localhost", 80))
serversocket.listen(1)
clientsocket, clientaddress = serversocket.accept()
print 'Conexion desde: ', clientaddress
while 1:
data = clientsocket.recv(1024)
if not data: break
clientsocket.send(data)
clientsocket.close()


#cliente:


import socket

clientsocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
clientsocket.connect(('localhost',80))
while 1:
data = raw_input('>')
clientsocket.send(data)
if not data: break
newdata = clientsocket.recv(1024)
print newdata*10
clientsocket.close()


Como ven, es un ejemplo de los muchos que hay en la red usando sockets(cosa que no tengo muy claro todavía que es..) El hecho es que este es exactamente el código que necesito para mi juego, con este servidor las cosas funcionan muy bien, pero a nivel local. Lo que no he podido es encontrar un sitio web gratuito en el cual yo pueda ejecutar el código del cliente y empezar a ejecutar mi juego, ya que me dicen que ESOS SITIOS NO ACEPTAN CONEXIONES ARBITRARIAS. Lo que quiero hacer es una pagina web con base de datos a la cual puedan acceder algunos usuarios del juego, aparte también del servidor que controlará las conexiones de los usuarios al juego (las acciones, movimientos, estadísticas etc) Bien, se que para esto se puede implementar Django, he estado leyendo acerca de este framework y es estupendo, se que me servirá para administrar la base de datos y pues aspiro a montar mi servidor tal cual esta en el ejemplo anterior, hecho meramente en pytnon usando sockets, creo yo, no se si estoy equivocado, que es la mejor manera de implementar un servidor para mi juego hecho en python. Un problema que tengo es que nunca he accedido a un servidor dedicado, tengo entendido que si uno contrata uno le dejan manipularlo como quiera, instalar python Django etc Lo que no se es que tan complejo sea instalar estos paquetes en un servidor dedicado, si yo estuviera seguro de poder hacerlo sin mayores problemas entonces seguiría desarrollando mi servidor en python (haciendo pruebas locales) y luego cuando estuviera listo contrataría un servidor dedicado, instalaría python Django y Mysql en ese servidor, configuraría mi servidor para conexiones arbitrarias como el del ejemplo y listo, estaría listo lo que necesito. Mi pregunta es ¿que tan complejo es hacer esto en un servidor dedicado, correr el script del ejemplo del servidor y que me reciba las conexiones de mis usuarios ? Otra cosa que me han dicho es que use REST services, que así no necesito realizar conexiones arbitrarias y lo puedo probar en cualquier servidor gratuito que tenga python, también me dijeron que el rendimiento es parecido al del servidor de mi ejemplo, supongo que utilizando REST puede ser mas fácil , el problema es que no se QUE SON REST SERVICES he leído y tengo alguna vaga idea, pero no mas. Que me aconsejan ? Alguien me puede guiar acerca de como montar mi servidor para mi juego ? Sera muy difícil hacer lo que yo quiero en un servidor dedicado . Que otra opción tengo ? que sea sencilla, aclaro que mi objetivo no es el aprendizaje profundo de las estructuras web, simplemente necesito configurar un servidor que me funcione decentemente sin tantas complicaciones.
(Otra cosa, dado que php está en casi todos los servidores, se podría hacer el servidor en php y conectarme desde mi pc con una aplicación python a él ? como sería el rendimiento comparado con el ejemplo de arriba?)
Muchas Gracias por su Ayuda!!!

Última edición por ger7777777; 17/02/2013 a las 22:56
  #2 (permalink)  
Antiguo 18/02/2013, 12:50
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Alguien que me ayude por favor....

Ok aquí tienes varias cosas:
1.- Un cliente para el juego
2.- Un servidor para el juego
3.- La base de datos
4.- El servidor web

Si bien un hosting compartido es muy limitado solamente te dan acceso a FTP y a un pedacito de un servidor web, probablemente compartido con mas clientes. No te dejan meterle mas cosas y obviamente tu no te encargas del mantenimiento del servidor.

Un servidor dedicado puede ser demasiado costo, para iniciar (al menos 120 USD al mes). La mejor opción en este caso es un vps para empezar (20USD al mes pero hay mas baratos).

Otra cosa veo que script del cliente/servidor de sockets es simplemente una copia de los tantos scripts de ejemplo que existen. Ademas eso no va a funcionar para mas 2 clientes. Te recomiendo usar twisted es mas robusto y a sido probado en varios proyectos.

Ahora si bien puedes usar REST para ciertos aspectos del juego como estadisticas, rankings, etc.., pero no para la comunicación del cliente, servidor del juego. Incluso el simplemente hecho de usar TCP para ciertos aspectos del juego no es una buena idea.
  #3 (permalink)  
Antiguo 18/02/2013, 14:37
 
Fecha de Ingreso: febrero-2013
Mensajes: 4
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Recomendación sobre hosting y sockets

OK Muchas gracias razpeitia por tu respuesta.
Entonces:
supongamos que utilizo Twisted como servidor de juegos, ya he hecho cosas con este framework, una vez más A NIVEL LOCAL y todo anda muy bien, es sencillo de utilizar. Aunque en la pagina del motor de juegos que uso dicen que usando sockets se puede hacer un juego multiplayer, lo que no se es que tan complejo sea esto, en cualquier caso seguiré tu consejo y usaré twisted.

Lo que tengo en mente, aclaro, es crear un servidor para mi juego, un servidor que obviamente haga posible la interacción entre los jugadores (disparos acertados, energía, posiciones actualizadas de los jugadores etc) también, esos datos, por ejemplo, cuantas partidas jugadas, promedios de juego atc deben ir a una pagina web, para que el usuario pueda verlos en su perfil, no dentro del mismo juego, repito, en una pagina web.

Pienso implementar mySQL como base de datos de mi juego, esos datos deben ser pasados entonces ala pagina web y ser mostrados en el perfil del usuario en esa pagina.
SUPONGO QUE NO SERÁ CONVENIENTE ALOJAR LA PAGINA EN EL MISMO SERVIDOR DEL JUEGO PARA EVITAR EL CONSUMO DE RECURSOS QUE SON MAS IMPORTANTES PARA LA EJECUCIÓN DEL JUEGO.

Para todo esto pienso entonces utlizar Python, Twisted, Django y mySQL.
Mi plan entonces es trabajar con estas herramientas anivel local, montar toda la infraestructura del juego incluyendo la pagina web y luego...SUBIR TODO ESO A UN SERVIDOR DEDICADO:
seguiré estos pasos:

1. Montar mi servidor de juegos con mySQL
2. Diseñar mi sitio web con Django y que se conecte a LA MISMA BASE DE DATOS DEL JUEGO, para poner esos datos en el perfil de cada jugador dentro de la pagina web del juego.
NO SE QUE INCONVENIENTES PUEDE TENER ESTE MODELO, ACEPTO AGRADECIDO SUGERENCIAS Y CONSEJOS.

Mi pregunta nuevamente es...¿ SERÁ MUY COMPLICADO SUBIR TODO ESTO A UN SERVIDOR DEDICADO? ¿ NO ME SALDRÁN CON COSAS COMO QUE NO SE PUEDE INSTALAR ESTO O LO OTRO, O SU APLICACIÓN NO SE PODRÁ EJECUTAR EN NUESTROS SERVIDORES POR TALES RAZONES?

No tengo problemas para trabajar a nivel local, lo que no quiero es trabajar meses a nivel local y cuando vaya a subir mi proyecto a la web resulte que no se puede( en este mismo instante no tengo la posibilidad de pagar un servidor). Tengo muchas dudas con esto ya que jamás he tenido si quiera un pagina web en un servidor. Espero que me sigan orientando con esto. Cualquier consejo u observación se los agradeceré muchísimo.

Última edición por ger7777777; 18/02/2013 a las 14:50
  #4 (permalink)  
Antiguo 19/02/2013, 11:08
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Recomendación sobre hosting y sockets

Cita:
Iniciado por ger7777777 Ver Mensaje
¿ SERÁ MUY COMPLICADO SUBIR TODO ESTO A UN SERVIDOR DEDICADO?
No, no sera complicado. Claro que vas a tener que configurar todo lo que sea necesario para correr tu servidor.

Cita:
Iniciado por ger7777777 Ver Mensaje
¿ NO ME SALDRÁN CON COSAS COMO QUE NO SE PUEDE INSTALAR ESTO O LO OTRO, O SU APLICACIÓN NO SE PODRÁ EJECUTAR EN NUESTROS SERVIDORES POR TALES RAZONES?
Eso va a depender de los términos y condiciones que ponga tu proveedor, pero mientras no hagas spam, subas malware o cosas por el estilo todo estará bien.

Y si, puedes separar tu sistema en 2 o mas maquinas. Solo recuerda que la comunicación de estas maquinas es importante y debe de ser rápida. Si no es así, entonces probablemente tengas mas problemas que ventajas.
  #5 (permalink)  
Antiguo 19/02/2013, 11:34
 
Fecha de Ingreso: febrero-2013
Mensajes: 4
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Recomendación sobre hosting y sockets

OK razpeitia. Muchas gracias por tu colaboración!!
  #6 (permalink)  
Antiguo 19/02/2013, 11:42
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 1 mes
Puntos: 1329
Respuesta: Recomendación sobre hosting y sockets

En una dedicado no administrado tienes control total (incluso en algunos VPS), así que no deberías tener problema instalando una u otra cosa, eso sí, todo lo tendrás que hacer tu manualmente.

En caso de que sean dos máquinas deberían estar por lo menos en el mismo datacenter.

Saludos
__________________
Grupo Telegram Docker en Español
  #7 (permalink)  
Antiguo 20/02/2013, 17:13
 
Fecha de Ingreso: febrero-2013
Mensajes: 4
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Recomendación sobre hosting y sockets

Gracias por la ayuda prestada!

Etiquetas: hosting, sockets
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:15.