after_consumer_attached, after_consumer_detached I think are not necessary. I added activated and suspended , because websocket  are not closed until they receive close frame. So session go to suspend state (idle state) when there is no connection with client, but it is still alive.