flask-socketio can't push message to client

Viewed 35

this is server.py

app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret!'
socketio = SocketIO(app)
tokenList = {}


@app.route("/test")
def testConnect():
    sid = tokenList["114514"]
    print(sid)
    emit('newMission', {'from': 'server'}, namespace="newMission", to=sid)
    return 'success'


@socketio.on('register')
def register(data):
    print("服务器%s尝试注册" % data["secret"])
    emit('register', {"token": "1919810"})
    print("注册成功,token为%s" % "1919810")
    sid = request.sid
    join_room("mainRoom")
    tokenList["114514"] = sid


"""@socketio.on('message')
def message(data):
    print(data)  # {'from': 'client'}
    emit('response', {'from': 'server'})
    sleep(5)
    emit('response', "exit")"""

if __name__ == '__main__':
    socketio.run(app, debug=True, host='127.0.0.1', port=8090)

and this is client.py

import socketio

sio = socketio.Client()


@sio.event()
def connect():
    print('正在注册,请稍后')
    sio.emit('register', {'secret': '114514'})


@sio.on('register')
def isReg(data):
    print("注册成功,当前token为" + data["token"])


@sio.on("newMission", namespace="message")
def newMission(data):
    print(data)


sio.connect('ws://localhost:8090')
sio.wait()

Client will connect to server,and server will get sid.However,when I try to push message by sid,client can't receive any message from server.I don't know how to solve this.

I am not good in English,sorry(

0 Answers
Related