class_docstr: aiohttp session manager
docstr: HTTP Client to be used with the streamer
  
  :param url: url to send http/websocket request to
  :param logger: jina logger
  :param max_attempts: Number of sending attempts, including the original request.
  :param initial_backoff: The first retry will happen with a delay of random(0, initial_backoff)
  :param max_backoff: The maximum accepted backoff after the exponential incremental delay
  :param backoff_multiplier: The n-th attempt will occur at random(0, min(initialBackoff*backoffMultiplier**(n-1), maxBackoff))
  :param tracer_provider: Optional tracer_provider that will be used to configure aiohttp tracing.
  :param kwargs: kwargs  which will be forwarded to the `aiohttp.Session` instance. Used to pass headers to requests
docstr_tok: ["HTTP","Client","to","be","used","with","the","streamer",":","param","url",":","url","to","send","http\/websocket","request","to",":","param","logger",":","jina","logger",":","param","max_attempts",":","Number","of","sending","attempts",",","including","the","original","request",".",":","param","initial_backoff",":","The","first","retry","will","happen","with","a","delay","of","random","(","0",",","initial_backoff",")",":","param","max_backoff",":","The","maximum","accepted","backoff","after","the","exponential","incremental","delay",":","param","backoff_multiplier",":","The","n-th","attempt","will","occur","at","random","(","0",",","min","(","initialBackoff","*","backoffMultiplier","*","*","(","n-1",")",",","maxBackoff",")",")",":","param","tracer_provider",":","Optional","tracer_provider","that","will","be","used","to","configure","aiohttp","tracing",".",":","param","kwargs",":","kwargs","which","will","be","forwarded","to","the","`","aiohttp.Session","`","instance",".","Used","to","pass","headers","to","requests"]
code: def __init__(
      self,
      url: str,
      logger: "JinaLogger",
      max_attempts: int = 1,
      initial_backoff: float = 0.5,
      max_backoff: float = 2,
      backoff_multiplier: float = 1.5,
      tracer_provider: Optional["trace.TraceProvider"] = None,
      **kwargs,
  ) -> None:
      """HTTP Client to be used with the streamer
  
      :param url: url to send http/websocket request to
      :param logger: jina logger
      :param max_attempts: Number of sending attempts, including the original request.
      :param initial_backoff: The first retry will happen with a delay of random(0, initial_backoff)
      :param max_backoff: The maximum accepted backoff after the exponential incremental delay
      :param backoff_multiplier: The n-th attempt will occur at random(0, min(initialBackoff*backoffMultiplier**(n-1), maxBackoff))
      :param tracer_provider: Optional tracer_provider that will be used to configure aiohttp tracing.
      :param kwargs: kwargs  which will be forwarded to the `aiohttp.Session` instance. Used to pass headers to requests
      """
      self.url = url
      self.logger = logger
      self.msg_recv = 0
      self.msg_sent = 0
      if tracer_provider:
          from opentelemetry.instrumentation.aiohttp_client import (
              create_trace_config,
          )
  
          self._trace_config = [
              create_trace_config(tracer_provider=tracer_provider)
          ]
      else:
          self._trace_config = None
      self.session = None
      self._session_kwargs = {}
      if kwargs.get("headers", None):
          self._session_kwargs["headers"] = kwargs.get("headers")
      if kwargs.get("auth", None):
          self._session_kwargs["auth"] = kwargs.get("auth")
      if kwargs.get("cookies", None):
          self._session_kwargs["cookies"] = kwargs.get("cookies")
      if kwargs.get("timeout", None):
          timeout = aiohttp.ClientTimeout(total=kwargs.get("timeout"))
          self._session_kwargs["timeout"] = timeout
      self.max_attempts = max_attempts
      self.initial_backoff = initial_backoff
      self.max_backoff = max_backoff
      self.backoff_multiplier = backoff_multiplier
  
imports: import asyncio
  from abc import ABC, abstractmethod
  from typing import TYPE_CHECKING, Dict, Optional, Union
  import aiohttp
  from aiohttp import WSMsgType
  from aiohttp.payload import BytesPayload
  from starlette import status
  from jina._docarray import docarray_v2
  from jina.clients.base import retry
  from jina.enums import WebsocketSubProtocols
  from jina.excepts import BadClient
  from jina.importer import ImportExtensions
  from jina.types.request import Request
  from jina.types.request.data import DataRequest
  from jina.types.request.status import StatusMessage
label_desc: Use image node_id 1 to create a new AioHttpClientlet object from inherited base classes: ABC with example: obj = AioHttpClientlet(url, logger, max_attempts, initial_backoff, max_backoff, backoff_multiplier, tracer_provider)