def chatroom_left(data): leave_room(data['roomName']) session['user']['currentChatroom'] = "None" Rooms.removeUserFromRoom(data['roomName'], data['userName'], session['user']['userColor']) currentUsers = Rooms.readRoomInformation(data['roomName']) print(currentUsers) emit('getUsersList', {'userName': currentUsers['usersConnected']}, room = data['roomName'], broadcast = True)
def chatroom_join(data): join_room(data['roomName']) session['user']['currentChatroom'] = data['roomName'] Rooms.addUserToRoom(data['roomName'], data['userName'], session['user']['userColor']) currentUsers = Rooms.readRoomInformation(data['roomName']) print(currentUsers) emit('getUsersList', {'userName': currentUsers['usersConnected']}, room = data['roomName'])
def user_lost(userWhoLost): UsersConfig.setPlayerLostStatus(userWhoLost['userName']) emit('userLostResponse', userWhoLost, broadcast=True) if (UsersConfig.allUsersLost()): emit('noOneGuessedTheWord', UsersConfig.getPrivateWord(), broadcast=True)
def on_disconnect(): if session['user']['currentChatroom'] != "None": Rooms.removeUserFromRoom(session['user']['currentChatroom'], session['user']['userName'], session['user']['userColor']) currentUsers = Rooms.readRoomInformation(session['user']['currentChatroom']) print(currentUsers) emit('getUsersList', {'userName': currentUsers['usersConnected']}, room = session['user']['currentChatroom'], broadcast = True) session.pop('user', None)
def test_connect(): emit('Server response', {'data': 'Server is Connected!', 'count': 0}) print("Server is connected") my_date = datetime.date.today() week_day_int = my_date.isoweekday() day = my_func.week_day[week_day_int] print day my_func.selectSettings(day)
def prepare_user(userToPrepare): UsersConfig.addReadyCounter() UsersConfig.prepareUser(userToPrepare) print(UsersConfig.getUserList()) emit('updateCounterAndUser', [UsersConfig.getReadyCounter(), [userToPrepare]], broadcast=True) emit('updateSelfStatus')
def unprepare_user(userToUnPrepare): UsersConfig.minusReadyCounter() UsersConfig.unprepareUser(userToUnPrepare) emit('quitReadySymbolFromTable', userToUnPrepare, broadcast=True) emit('updateCounterAndUser', [UsersConfig.getReadyCounter(), UsersConfig.getUsersReady()], broadcast=True)
def teacherLogOutRequest(loged_out, teacher_id): query.TeacherAvailability(loged_out, teacher_id) emit('ShowAvailability', { 'availability': 0, 'teacherID': teacher_id }, broadcast=True)
def find_score(message): sending = {'username': message, 'highscore': 0, 'rank': 0} scores = Score.query.order_by(Score.score.desc()).all() for i in range(len(scores)): if scores[i].username == message: sending['highscore'] = scores[i].score sending['rank'] = i + 1 break emit('found score', sending)
def test_disconnect(json): print(json) sid = request.sid sessions = list(active_sessions) for session in sessions: if sid != session: print("sended to {}".format(session)) emit("updateHandler", {"data": json}, room=session) else: print("{} Rejected".format(sid))
def handleAvailability(available, teacher_id): query.TeacherAvailability(available, teacher_id) # print("hello") emit('ShowAvailability', { 'availability': available, 'teacherID': teacher_id }, broadcast=True)
def handleChange(data): if (data['method'] == 'edit'): print('editing...') else: Post.query.filter_by(id=data['item']).delete() db.session.commit() emit('display_posts', [{ 'id': item.id, 'content': item.content, 'createdAt': item.createdAt.isoformat(), 'updatedAt': item.updatedAt } for item in Post.query.all()])
def game_finished(): UsersConfig.setGameStatus(False) UsersConfig.clearUserStatus() UsersConfig.clearReadyCounter() UsersConfig.clearPrivateWord() print(UsersConfig.getUserList()) emit('resetGame', broadcast=True) emit('updateCounterAndUser', [UsersConfig.getReadyCounter(), UsersConfig.getUsersReady()], broadcast=True)
def enterQueue(message): global waitingIndex, waiting, debug, games, players, onGame debug.write('something happening') for i in range(waitingIndex): if waiting.has(i): debug.write('queue has someone in it already: ' + request.sid) opponent = waiting.get(i) new = BeanJump(opponent, request.sid) players[opponent] = onGame players[request.sid] = onGame emit('found game', { 'p1': { 'left': new.player2.left, 'top': new.player2.top }, 'p2': { 'left': new.player1.left, 'top': new.player1.top }, 'me': opponent, 'enemy': request.sid }, room=opponent) emit('found game', { 'p1': { 'left': new.player1.left, 'top': new.player1.top }, 'p2': { 'left': new.player2.left, 'top': new.player2.top }, 'me': request.sid, 'enemy': opponent }, room=request.sid) games.append(new) onGame += 1 waiting.delete(i) return waiting.set(waitingIndex, request.sid) waitingIndex += 1 debug.write('added request.sid ' + request.sid + ' to queue')
def test_connect(): # 单例模式创建线程,定时发布消息 global thread1, thread2 with lock: if thread1 is None: thread1 = socketio.start_background_task(target=background_task) thread2 = socketio.start_background_task(target=background_task2) # 未读信息 if isinstance(current_user.is_anonymous, bool): return else: # 私信未读 message = Message.query.filter_by(toId=current_user.id, hasRead=0).all() # feed # h = a-b if a>b else a+b emit('noreadmsg', {'data': '' if len(message) == 0 else len(message)})
def start_game_request(): if UsersConfig.allPlayersReady() and len(UsersConfig.getUserList()) >= 2: UsersConfig.setGameStatus(True) selectedUserName = UsersConfig.chooseRandomPlayer() UsersConfig.setPlayerLostStatus(selectedUserName['userName']) print(UsersConfig.getUserList()) UsersConfig.setPlayerAsHost(selectedUserName['userName']) emit('startGameProcess', selectedUserName, broadcast=True) emit('chooseWord', selectedUserName, broadcast=True) else: emit('startGameError', broadcast=True)
def disconnection(): resetGame = False hostLeaved = False if (UsersConfig.isHost(session['currentUser']['userName']) and UsersConfig.isGameStarted()): UsersConfig.setGameStatus(False) UsersConfig.clearPrivateWord() UsersConfig.clearReadyCounter() UsersConfig.clearUserStatus() resetGame = True hostLeaved = True UsersConfig.removeUserFromList(session['currentUser']['userName']) if (len(UsersConfig.getUserList()) <= 1 and UsersConfig.isGameStarted()): UsersConfig.setGameStatus(False) UsersConfig.clearPrivateWord() UsersConfig.clearReadyCounter() UsersConfig.clearUserStatus() resetGame = True emit('updateCounterAndUser', [UsersConfig.getReadyCounter(), UsersConfig.getUsersReady()], broadcast=True) emit('removeUser', session['currentUser'], broadcast=True) print(UsersConfig.getUserList()) if resetGame: print(UsersConfig.getUserList()) emit('resetGame', broadcast=True) if hostLeaved: emit('hostLeaved', session['currentUser']['userName'], broadcast=True) session.pop('currentUser', None)
def send_room_message(message): session['receive_count'] = session.get('receive_count', 0) + 1 emit('my response', {'data': message['data'], 'count': session['receive_count']}, room=message['room'])
def close(message): session['receive_count'] = session.get('receive_count', 0) + 1 emit('my response', {'data': 'Room ' + message['room'] + ' is closing.', 'count': session['receive_count']}, room=message['room']) close_room(message['room'])
def leave(message): leave_room(message['room']) session['receive_count'] = session.get('receive_count', 0) + 1 emit('my response', {'data': 'In rooms: ' + ', '.join(rooms()), 'count': session['receive_count']})
def test_broadcast_message(message): session['receive_count'] = session.get('receive_count', 0) + 1 emit('my response', {'data': message['data'], 'count': session['receive_count']}, broadcast=True)
def connection(): emit('getUserList', UsersConfig.getUserList()) emit('updateCounterAndUser', [UsersConfig.getReadyCounter(), UsersConfig.getUsersReady()])
def play_connect(): session['id'] = str(uuid4()) logger.debug('Connected ID: ' + session['id']) emit('connected', {'id': session['id']})
def user_command(userInformation): if userInformation['isHost']: emit('userUsedCommand', userInformation, broadcast=True) else: emit('notEnoughAuthority')
def get_scores(message): sending = [] for score in Score.query.order_by(Score.score.desc()).all(): sending.append([score.username, score.score]) emit('update', sending)
def user_fail(userWhoFail): emit('removeAttempt', userWhoFail)
def user_attempt(userAttempt): emit('showUserAttempt', userAttempt, broadcast=True)
def start_game_officially(wordToGuess): codedWord = len(wordToGuess) * " _" UsersConfig.setPrivateWord(wordToGuess) emit('startGameForAll', [wordToGuess, codedWord[1:]], broadcast=True)
def disconnect_request(): session['receive_count'] = session.get('receive_count', 0) + 1 emit('my response', {'data': 'Disconnected!', 'count': session['receive_count']}) disconnect()
def get_command(command): cmds = ["/createchatroom", "/deletechatroom", "/help"] splitCommand = str(command['userCommand']).split(" ") if len(splitCommand) >= 2: if splitCommand[0] in cmds: if splitCommand[0] == "/createchatroom": splitCommand.remove("/createchatroom") roomName = "".join([text + " " for text in splitCommand])[:-1] Rooms.createRoom(roomName) emit('commandResponse', {'response': f'Chatroom created: {roomName}. (click reload chatrooms button on chatrooms page to see it)'}) elif splitCommand[0] == "/deletechatroom": splitCommand.remove("/deletechatroom") roomName = "".join([text + " " for text in splitCommand])[:-1] Rooms.deleteRoom(roomName) emit('commandResponse', {'response': f'Chatroom deleted: {roomName}. (click reload chatrooms button on chatrooms page to see it)'}) else: emit('commandResponse', {'response': f'Command {splitCommand[0]} not found. Try /help'}) else: if splitCommand[0] == "/createchatroom": emit('commandResponse', {'response': f'Command Usage {splitCommand[0]} <roomname>'}) elif splitCommand[0] == "/deletechatroom": emit('commandResponse', {'response': f'Command Usage {splitCommand[0]} <roomname>'}) elif splitCommand[0] == "/help": emit('commandResponse', {'response': f'Existing commands: /createchatroom <roomname>, /deletechatroom <roomname>'}) else: emit('commandResponse', {'response': f'Command {splitCommand[0]} not found. Try /help'})
def test_connect(): emit('my response', {'data': 'Connected', 'count': 0})
def add_user(user): UsersConfig.addUserToList(session['currentUser']) print(UsersConfig.getUserList()) emit('updateUserList', user, broadcast=True, include_self=False)