class_docstr: Manages interactions between agents on a websocket as well as direct interactions
  between agents and an overworld.
class_docstr_tok: ["Manages","interactions","between","agents","on","a","websocket","as","well","as","direct","interactions","between","agents","and","an","overworld","."]
docstr: Begin handling task.
docstr_tok: ["Begin","handling","task","."]
code: def start_task(self):
      """
      Begin handling task.
      """
      self.running = True
      self.app = self._make_app()
      self.app.listen(self.port)
      # Must use a tornado callback to run the main loop
      callback_time = utils.THREAD_MEDIUM_SLEEP * 1000
      tornado.ioloop.PeriodicCallback(
          callback=self._manager_loop_fn, callback_time=callback_time
      ).start()
      tornado.ioloop.IOLoop.current().start()
  
imports: import json
  import asyncio
  import logging
  from parlai.core.agents import create_agent
  from parlai.chat_service.core.chat_service_manager import ChatServiceManager
  import parlai.chat_service.utils.logging
  import parlai.chat_service.utils.misc
  from parlai.chat_service.services.websocket.sockets import MessageSocketHandler
  from .agents import WebsocketAgent
  import tornado
  from tornado.options import options
label_desc: Use image node_id 7 for calling the WebsocketManager obj's underlying member method code with example usage: obj.start_task() without return types