3

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 ルートにアクセスできるようになります。「クライアントが接続されました」と表示され、もちろんキーエラーが表示されます。

フラスコソケットを 0.4.2 にアップグレードしました。

一番

アンドリュー

4

2 に答える 2