6.广播
优质
小牛编辑
137浏览
2023-12-01
SocketIO另外一个非常有用的特性就是广播消息。Flask-SocketIO中,只要将broadcast = True
这个可选参数加到send()和emit()中即可:
@socketio.on('my event') def handle_my_custom_event(data): emit('my response', data, broadcast=True)
当一个消息以广播选项被开启的情况下被发出的时候,连接到这个命名空间的所有客户端都会收到这个消息。注意:广播的消息将不会被回调。
所有的例子表明,直到这个节点服务器才回复客户端发出的这个活动。但是另外的应用中,服务器需要成为消息的发起者。对于起源于服务器的活动而言,这个有利于发送通知到客户端,比如在后台线程中。socketio.send()
和socketio.emit()
方法可以用来对所有的连接进行广播。
def some_function(): socketio.emit('some event', {'data': 42})
注意:通过对send()和emit()的上下文的感知,socketio.send()
和socketio.emit()
不是相同的函数。同样需要注意的是:以上的用法是没有客户端内容,所以假定broadcast=True
,并且需要被具体化。