使用 Flask-socketio 和 socketIO 客户端

Dee*_*oor 6 python socket.io flask-socketio

我目前正在尝试了解套接字是如何工作的。我正在使用 Flask-socketio 和 python socketio 客户端并运行一个基本示例。这是我到目前为止所做的

应用程序

from flask import Flask, render_template
from flask_socketio import SocketIO, emit

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

@socketio.on('aaa')
def test_connect():
    print("Welcome, aaa received")
    emit('aaa_response', {'data': 'Server'})

if __name__ == '__main__':
    socketio.run(app, port=8000)
Run Code Online (Sandbox Code Playgroud)

客户端.py

from socketIO_client import SocketIO, LoggingNamespace

def on_aaa_response(args):
    print('on_aaa_response', args['data'])

socketIO = SocketIO('localhost', 8000, LoggingNamespace)
socketIO.on('aaa_response', on_aaa_response)
socketIO.emit('aaa')
socketIO.wait(seconds=1)
Run Code Online (Sandbox Code Playgroud)

运行client.py. 我确实看到了服务器打印"Welcome, aaa recived"。我不知道我在这里做错了什么,如果需要这里是我的日志

错误日志

from flask import Flask, render_template
from flask_socketio import SocketIO, emit

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

@socketio.on('aaa')
def test_connect():
    print("Welcome, aaa received")
    emit('aaa_response', {'data': 'Server'})

if __name__ == '__main__':
    socketio.run(app, port=8000)
Run Code Online (Sandbox Code Playgroud)

Mig*_*uel 3

根据堆栈跟踪,我无法识别socketIO-client您正在使用的包的版本。它似乎不是当前的。

我在这里测试了您的两个应用程序,它们似乎与 0.7.2 版本的客户端完美配合。我建议你运行pip install --upgrade socketIO-client==0.7.2然后再试一次。