Я создаю чистое приложение python с flask socket-io. В настоящее время я пытаюсь настроить сервер на отправку события определенному клиенту c и дождаться обратного вызова, прежде чем двигаться дальше. Это мой Server.py
import socketio
import eventlet
sio = socketio.Server(async_handlers=False)
app = socketio.WSGIApp(sio)
@sio.event
def connect(sid, environ):
nm = None
def namee(name):
print(name) # this has the value and is trying to assign it to nm
nonlocal nm
nm = name
sio.emit('name_', "name plz", callback=namee)
print(nm) # this shouldn't be None, but it is
print(sid, "in lobby")
@sio.event
def disconnect(sid):
print('disconnect', sid)
if __name__ == '__main__':
eventlet.wsgi.server(eventlet.listen(('', 5000)), app)
А это мой client.py
import sys
import socketio
sio = socketio.Client()
@sio.event
def connect():
print("you have connected to the server")
@sio.event
def connect_error(data):
print("The connection failed!")
@sio.event
def disconnect():
print("You have left the server")
@sio.event
def name_(data):
print("name asked for")
return "test"
def main():
sio.connect('http://localhost:5000')
print('Your sid is', sio.sid)
if __name__ == '__main__':
main()
Я пробовал использовать time.sleep (), но это задержало весь процесс. Я также пробовал сделать какое-то время l oop
while nm is None:
pass
, но клиент отключился от сервера, а через некоторое время сервер упал.