Пример #1
0
    def _setup_sock(self, response):
        self.csrf = None
        self.user_id = None
        self.logged_in = False
        self.waiting_bet_result = False
        self.last_bet = None
        self.house_edge = 1  # %
        self.waiting_seed = False

        origin = BASE_URL
        self.sock = SocketIO(BASE_DOMAIN, origin, response, secure=True)

        self.sock.on('init', self.on_init)
        self.sock.on('set_hash', self.on_set_hash)
        self.sock.on('reload', self.on_reload)
        self.sock.on('result', self.on_result)
        self.sock.on('login_error', self.on_login_error)
        self.sock.on('jderror', self.on_jderror)
        self.sock.on('new_client_seed', self.on_new_seed)

        self.sock.on('invest', self.on_invest)
        self.sock.on('invest_error', self.on_invest_error)
        self.sock.on('divest_error', self.on_divest_error)
        self.sock.on('balance', self.on_balance)
        self.sock.on('chat', self.on_chat)
    def handle(self):
        self.handler = MyHTTPHandler(WEB_ROOT)
        self.sio = SocketIO(self.request)

        try:
            req = Request.read_from(self.SocketIterator(self.sio))
            if LOG_REQUESTS:
                print(('{}:{} {} {}').format(
                    self.client_address[0],
                    self.client_address[1],
                    req.method, req.path), file=sys.stderr)
            resp = self.handler.handle_request(req)
        except myhttp.ParseError:
            resp = Response(Response.BAD_REQUEST)
        except self.ClientDisconnected:
            # nothing to do, really
            return
        except:
            # Try to send a valid response even if something went wrong
            if LOG_REQUESTS:
                print('500 Internal Server Error', file=sys.stderr)
            self.sio.write(b'HTTP/1.1 500 Internal Server Error\r\n')
            raise

        # Attach required header
        resp.attach_header('Connection', 'close')

        # send
        self._send_response(resp)