text: import logging
  
  from huobi.connection.impl.websocket_manage import WebsocketManage
  from huobi.connection.impl.websocket_request import WebsocketRequest
  from huobi.constant.system import WebSocketDefine
  
  
  class WebSocketReqClient(object):
  
      def __init__(self, **kwargs):
          """
          Create the subscription client to subscribe the update from server.
  
          :param kwargs: The option of subscription connection.
              api_key: The public key applied from Huobi.
              secret_key: The private key applied from Huobi.
              url: Set the URI for subscription.
              init_log: to init logger
          """
  
          self.__api_key = kwargs.get("api_key", None)
          self.__secret_key = kwargs.get("secret_key", None)
          self.__uri = kwargs.get("url", WebSocketDefine.Uri)
          self.__init_log = kwargs.get("init_log", None)
          if self.__init_log and self.__init_log:
              logger = logging.getLogger("huobi-client")
              # logger.setLevel(level=logging.INFO)
              handler = logging.StreamHandler()
              handler.setFormatter(logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s'))
              logger.addHandler(handler)
  
      def __create_websocket_manage(self, request):
          manager = WebsocketManage(self.__api_key, self.__secret_key, self.__uri, request)
          manager.connect()
  
      def create_request(self, subscription_handler, parse, callback, error_handler, is_trade=False, is_mbp_feed=False):
          request = WebsocketRequest()
          request.subscription_handler = subscription_handler
          request.is_trading = is_trade
          request.is_mbp_feed = is_mbp_feed
          request.auto_close = True  # for websocket request, auto close the connection after request.
          request.json_parser = parse
          request.update_callback = callback
          request.error_handler = error_handler
          return request
  
      def execute_subscribe_v1(self, subscription_handler, parse, callback, error_handler, is_trade=False):
          request = self.create_request(subscription_handler, parse, callback, error_handler, is_trade)
          self.__create_websocket_manage(request)
  
      def execute_subscribe_mbp(self, subscription_handler, parse, callback, error_handler, is_trade=False,
                                is_mbp_feed=True):
          request = self.create_request(subscription_handler, parse, callback, error_handler, is_trade, is_mbp_feed)
          self.__create_websocket_manage(request)
  