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