Форум сайта python.su
Здравствуйте.
Есть задача написать онлайн игру . В качестве бакенда будет сокетный сервер на питоне. В качестве фронтенда - джанго и флеш .
Допустим джанго будет висеть на определенном домене на сервере wsgi. На том же хостинге бодет вертется демон, который будет прослушивать какой - нибудь порт этого домена. Когда открывается страничка сайта, згружается флеш приложение и делает длинный http запрос к демону. Демон удерживает связь с сокетттом и обрывает соединение только в том случае, если пользователь отключился или когда игра завершена. Но вот не понятно, как можно получить GET и POST данные запроса. В os.environ их нет.
Вот примерный код демона:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from select import *
from socket import *
import os
class Server(object):
def __init__(self):
self.sock = socket( AF_INET, SOCK_STREAM )
self.sock.bind( ('access', 8880) )
self.sock.listen( 3 )
self.sock_list = [self.sock]
self.connectedSockets = {}
def ret_env(self):
self.result = ' '
def run(self):
while (1):
sockets = select(self.sock_list, [], [])
tmp, addr = self.sock.accept()
self.connectedSockets[tmp] = addr
print self.connectedSockets, '\n'
self.ret_env()
print self.connectedSockets, '\n'
print os.environ, '\n'
tmp.send(self.result)
if __name__ == '__main__':
Server().run()
Отредактировано (Март 14, 2010 22:07:59)
Офлайн
Если клиент делает http запросы то зачем вы взяли сокет сервер? Возьмите обычный http сервер и в нем вы получите возможность легко обрабатывать GET и POST запросы.
Офлайн