FlaskでsocketのIDを指定してemitする(Python/Websocket)

https://github.com/miguelgrinberg/Flask-SocketIO/issues/8
を修正する。

@socketio.on('my event', namespace='/test')
def test_message(message):
    session['receive_count'] = session.get('receive_count', 0) + 1
    for sessid, socket in request.namespace.socket.server.sockets.items():
        if socket['/test'].session['id'] == session['id']: #イコールに変更
            socket['/test'].base_emit('my response', {'data': message['data'],
                    'count': session['receive_count']})


@socketio.on('connect', namespace='/test')
def test_connect():
    session['id'] = str(uuid.uuid4())
    emit('my response', {'data': 'Client connected: ' + session['id'], 
            'count': 0}, broadcast=True)
...

ちなみにuuid4はデフォルトで入ってなかった。

sudo pip install uuid
import uuid
print str(uuid.uuid4())

で使用する。