Я использую Flask -SocketIO на сервере и socketIO-клиент на P C. После запуска приложения на P C отправляется запрос на получение кода комнаты:
socketIO = SocketIO('192.168.43.217', 8080)
def get_code(code):
submit_code = code
print('code =', code)
socketIO.emit('new_room')
socketIO.on('get_code', get_code)
socketIO.wait()
Сервер отправляет код:
@socketio.on('new_room')
def new_room():
code = randint(1000, 9999)
db.session.add(Rooms(code))
db.session.commit()
emit('get_code', code)
Я добавил socketio.emit('new_user', current_user.name)
после пользователя, и этот код отправляет имя клиенту P C.
Но если я создаю две или более комнат, я вижу, что один и тот же пользователь вошел в другую комнату.
Как я могу сделать что-то как socketio.emit('new_user', current_user.name, namespace=f'/{room_code}')
? Это будет излучаться только в нужную комнату.
Или это не правильный путь? После этого игра запустится, P C -клиент покажет ответы, игроки получат некоторые ответы от P C, а затем отправят его обратно так:
1) Код генерируется на сервере и компьютер возвращается
2) Человек с другого устройства вводит код, его ник и подключается
3) Он появляется в комнате
4) Появляется запись на компьютере, к которому он подключен
5) Игра начинается, задача отображается
6) Варианты ответов приходят на телефоны
7) Компьютер показывает, кто ответил, ну тогда уже есть чисто игровые логи c. Расчет очков и прочего