only publish live rooms
reorganize room controller
put room controller into a separate file