【发布时间】:2020-01-05 17:38:03
【问题描述】:
我在服务器上使用 Flask-SocketIO,在 PC 上使用 socketIO-client。 在PC上启动应用程序后,它会发送获取房间代码的请求:
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),该代码将名称发送到 PC 客户端。
但是如果我创建两个或更多房间,我会看到,同一个用户登录了不同的房间。
我怎样才能制作像socketio.emit('new_user', current_user.name, namespace=f'/{room_code}') 这样的东西?
那只会发射到正确的房间。
或者这不是正确的方法? 之后游戏开始,PC端会显示答案,玩家会从PC上得到一些答案,然后像这样发回:
1)在服务器上生成代码并返回计算机
2) 来自另一台设备的人输入代码、他的昵称并连接
3) 他出现在房间里
4) 一条记录出现在它所连接的计算机上
5) 游戏开始,显示任务
6) 电话提供接听选项
7) 计算机显示谁回答,好吧,那么已经有纯粹的游戏逻辑了。积分等的计算
【问题讨论】:
-
我还锁定了一种在多房间环境中在多个用户之间存储对象的方法。您是否还将游戏逻辑对象存储到该数据库中?
标签: python-3.x flask flask-socketio