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!!!