Flask-SocketIO中disconnect()方法的用法和示例
发布时间:2023-12-16 06:22:10
Flask-SocketIO是一个用于构建基于WebSocket的实时应用程序的插件。其中,disconnect()方法用于断开与客户端的连接。
disconnect()方法的语法如下:
disconnect(close=None)
该方法的参数close用于指定客户端断开连接后是否关闭连接。默认情况下,关闭连接是可选的。
下面是一个使用disconnect()方法的示例:
from flask import Flask, render_template
from flask_socketio import SocketIO, emit
app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret!'
socketio = SocketIO(app)
@app.route('/')
def index():
return render_template('index.html')
@socketio.on('connect')
def test_connect():
print('Client connected')
@socketio.on('disconnect')
def test_disconnect():
print('Client disconnected')
if __name__ == '__main__':
socketio.run(app)
这个示例中,定义了一个基于Flask-SocketIO的简单服务器。在客户端连接上时,test_connect()方法将被调用,打印出"Client connected";而在客户端断开连接时,test_disconnnect()方法将被调用,打印出"Client disconnected"。
除了上述的打印输出,我们还可以通过SocketIO的emit()方法向特定客户端发送消息。例如,在test_disconnect()方法中,我们可以通过emit('message', 'Client disconnected')来告知客户端断开连接的消息。
from flask import Flask, render_template
from flask_socketio import SocketIO, emit
app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret!'
socketio = SocketIO(app)
@app.route('/')
def index():
return render_template('index.html')
@socketio.on('connect')
def test_connect():
print('Client connected')
@socketio.on('disconnect')
def test_disconnect():
emit('message', 'Client disconnected')
print('Client disconnected')
if __name__ == '__main__':
socketio.run(app)
可以在客户端的JavaScript代码中使用SocketIO的on()方法来监听message事件,并在事件发生时进行处理。
<script src="https://cdn.socket.io/socket.io-3.1.0.min.js"></script>
<script type="text/javascript">
var socket = io();
socket.on('message', function(msg) {
console.log(msg);
});
</script>
以上就是Flask-SocketIO中disconnect()方法的用法和示例。通过这个示例,我们可以了解到disconnect()方法用于断开与客户端的连接并发送事件。
