code: def websocket_handler(request):
      
  
      logger.debug('New websocket connection.')
      websocket = web.WebSocketResponse()
      yield from websocket.prepare(request)
      uuid = uuid4()
      request.app['dispatcher'].subscribe(uuid, websocket)
  
      while True:
          # Consume input buffer
          try:
              msg = yield from websocket.receive()
          except RuntimeError as e:
              logger.debug('Websocket exception: %s', str(e))
              break
          except CancelledError:
              logger.debug('Websocket closed')
              break
          if msg.type == aiohttp.WSMsgType.CLOSED:
              logger.debug('Websocket closed')
              break
          elif msg.type == aiohttp.WSMsgType.ERROR:
              logger.debug('Websocket exception: %s', websocket.exception())
              break
  
      request.app['dispatcher'].unsubscribe(uuid)
      return websocket
docs: Handle a new socket connection.