code: def find_by_client(cls, from_client, limit=None, before_time=None, before_message_id=None):
          # type: (str, Optional[int], Optional[Union[datetime, float]], Optional[str]) -> List[Message]
          
          query_params = {}  # type: Dict[str, Any]
          query_params['from'] = from_client
          if limit is not None:
              query_params['limit'] = limit
          if isinstance(before_time, datetime):
              query_params['max_ts'] =  round(before_time.timestamp() * 1000)
          elif isinstance(before_time, six.integer_types) or isinstance(before_time, float):
              query_params['max_ts'] = round(before_time * 1000)
          if before_message_id is not None:
              query_params['msgid'] = before_message_id
          return list(cls._find(query_params))
docs: 获取某个 client 的聊天记录
  
          :param from_client: 要获取聊天记录的 client id
          :param limit: 返回条数限制，可选，服务端默认 100 条，最大 1000 条
          :param before_time: 查询起始的时间戳，返回小于这个时间(不包含)的记录，服务端默认是当前时间
          :param before_message_id: 起始的消息 id，使用时必须加上对应消息的时间 before_time 参数，一起作为查询的起点
          :return: 符合条件的聊天记录