python - flask-socketio 什么时候执行房间事件
问题描述
我刚刚开始使用 flask-socketio 并且想知道房间事件什么时候执行?
的背景:
我等待一个自定义事件,让我们调用它addUser
。当从客户端发送该事件时,我执行join_room('roomName')
. create-room
如果没有创建房间,我会期待这个事件。在create-room
事件处理程序中,我初始化了一些我在addUser
. 现在不知何故我从来没有得到这个create-room
事件。
from flask import Flask, jsonify, request, render_template
from flask_socketio import SocketIO, send, emit, join_room, leave_room, rooms
...
rid2Game = {}
@socketio.on('addUser')
def addUser(rid, uid):
print('New user %s -> %s joining' % (request.sid, uid))
join_room(rid)
# time.sleep(10)
rid2Game[str(rid)].connect(request.sid, uid) # this depends on the initialization of create-room
# (this is a threading thing too, but I thought, at least
# for testing with the waiting above this would have to work)
@socketio.on('create-room')
def createRoom(rid):
print("Add room %s" % rid)
rid2Game[str(rid)] = game.Game() # some initialization
我做错了什么?(也许有人甚至对线程有想法)
解决方案
推荐阅读
- ansible - Ansible:在任务中使用组变量
- regex - REGEX 如何从 3 个向导中进行选择,最后一个?
- java - 二进制搜索不会停止?
- shell - 在linux中将xlsx批量转换为csv,所有带有模式的工作表,如果它们有数据
- javascript - d3.js onclick 和 touch 在 topojson 地图上运行不正常
- shell - 如何在 Jenkins 声明式管道中运行“sudo su”命令?
- r - 使用 dplyr 管道更改列值
- c# - 使用 API 请求的结果填充 Spinner
- php - Laravel:当用户上线时会触发什么样的事件?(回声和广播)
- c# - 返回基本类型时从继承中获取值