Beispiel #1
0
def handle_websocket():
    wsock = request.environ.get('wsgi.websocket')
    if not wsock:
        abort(400, 'Expected WebSocket request.')

    while True:
        try:
            message = wsock.receive()
            message_dict = eval(str(message))
            try:
                game_id = message_dict['gID']
                user_id = message_dict['uID']
                cmd = message_dict['cmd']
                data = message_dict['dat']
            except KeyError:
                print 'malformed message!'

            except TypeError as e:
                if e.message == "'NoneType' object has no attribute '__getitem__'":
                    if user_id is not None:
                        USERS.getUserByToken(user_id).signOut()
                else:
                    raise

            user = USERS.getUserByToken( user_id)
            print "received :", cmd, 'from',  user_id
            webSocketParser.parse(cmd, data, user, wsock, USERS, GAMES.games[0].OOIs)

        except geventwebsocket.WebSocketError:
            print 'client disconnected'
            break
Beispiel #2
0
def handle_websocket():
    wsock = request.environ.get('wsgi.websocket')
    if not wsock:
        abort(400, 'Expected WebSocket request.')

    while True:
        try:
            message = wsock.receive()
            mesDict = eval(str(message))
            try:
                gameID = mesDict['gID']
                userID = mesDict['uID']
                cmd    = mesDict['cmd']                    
                data   = mesDict['dat']
            except KeyError:
                print 'malformed message!'

            except TypeError as e:
                if e.message == "'NoneType' object has no attribute '__getitem__'":
                    # it's likely that pesky onclose message I can't fix... ignore for now
                    print 'connection closed'
                else:
                    raise
            # TODO: call message parser sort of like:
            #game_manager.parseMessage(message,wsock)
            # NOTE: message parser should probably be an attribute of the game
            webSocketParser.parse(cmd, data, USERS.getUserByToken(userID), wsock, GAMES.games[0].OOIs)
            print "received :",cmd,'from',userID
        except WebSocketError:
            print 'websocketerror encountered'
            break
Beispiel #3
0
def handle_websocket():
    wsock = request.environ.get("wsgi.websocket")
    if not wsock:
        abort(400, "Expected WebSocket request.")

    while True:
        try:
            message = wsock.receive()
            mesDict = eval(str(message))
            try:
                gameID = mesDict["gID"]
                userID = mesDict["uID"]
                cmd = mesDict["cmd"]
                data = mesDict["dat"]
            except KeyError:
                print "malformed message!"

            except TypeError as e:
                if e.message == "'NoneType' object has no attribute '__getitem__'":
                    # it's likely that pesky onclose message I can't fix... ignore for now
                    print "connection closed"
                else:
                    raise
            # TODO: call message parser sort of like:
            # game_manager.parseMessage(message,wsock)
            # NOTE: message parser should probably be an attribute of the game
            print "received :", cmd, "from", userID
            webSocketParser.parse(cmd, data, USERS.getUserByToken(userID), wsock, GAMES.games[0].OOIs)
        except WebSocketError:
            print "client disconnected"
            break
Beispiel #4
0
def handle_websocket():
    wsock = request.environ.get('wsgi.websocket')
    if not wsock:
        abort(400, 'Expected WebSocket request.')

    while True:
        try:
            message = wsock.receive()
            mesDict = eval(str(message))
            try:
                gameID = mesDict['gID']
                userID = mesDict['uID']
                cmd = mesDict['cmd']
                data = mesDict['dat']
            except KeyError:
                print 'malformed message!'

            except TypeError as e:
                if e.message == "'NoneType' object has no attribute '__getitem__'":
                    if userID is not None:
                        USERS.getUserByToken(userID).disconnected = True
                else:
                    raise
            # TODO: call message parser sort of like:
            #game_manager.parseMessage(message,wsock)
            # NOTE: message parser should probably be an attribute of the game
            user = USERS.getUserByToken(userID)
            if not user.disconnected:
                print "received :", cmd, 'from', userID
                webSocketParser.parse(cmd, data, user, wsock, USERS, GAMES.games[0].OOIs)
        except WebSocketError:
            print 'client disconnected'
            break