make socket.on always async