[英]Flask-socketio, emit an event to another namespace
我正在使用Flask-socketio( http://flask-socketio.readthedocs.org/en/latest/ )。
我目前正在
KeyError: '/local'
在events.py中使用它時。 請注意不同的名稱空間:
@socketio.on('connect', namespace='/photo')
def client_connect():
emit('event', { 'type': 'client_connect' }, namespace='/local')
使用Flask-socketio是否可以將事件發送到一個單獨的名稱空間? 該文檔似乎暗示了這一點,但是我無法鍛煉為什么總是收到KeyError。
編輯:感謝@Miguel提出的答案,我再次嘗試了(離開項目很長時間后),但仍然遇到以下錯誤:
@socketio.on('connect', namespace='/local')
def local_client_connect():
print ('Local client connected.')
@socketio.on('connect', namespace='/photo')
def client_connect():
print ('Client connected.')
send('client_connect', namespace='/local')
運行應用程序時,我看到打印的“本地客戶端已連接”。 只有這樣,我才允許客戶端訪問/ photo路由。 我看到“客戶端已連接”已打印,當然還有鍵錯誤。
我已經將flask-socketio升級到0.4.2。
最好
安德魯
您需要在第二個名稱空間上至少有一個處理程序。 例如:
@socketio.on('connect', namespace='/local')
def local_client_connect():
pass
然后Flask-SocketIO將了解/local
並能夠向其發出消息。
我遇到了同樣的問題,並像這樣解決了。
@socketio.on('connect', namespace='/photo')
def client_connect():
socketio.emit('event', { 'type': 'client_connect' }, namespace='/local')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.