refactor, client add channel like rabbitmq