class_docstr: A socket.io input channel.
class_docstr_tok: ["A","socket.io","input","channel","."]
docstr: Creates socket.io output channel object.
docstr_tok: ["Creates","socket.io","output","channel","object","."]
code: def get_output_channel(self) -> Optional["OutputChannel"]:
      """Creates socket.io output channel object."""
      if self.sio is None:
          rasa.shared.utils.io.raise_warning(
              "SocketIO output channel cannot be recreated. "
              "This is expected behavior when using multiple Sanic "
              "workers or multiple Rasa Open Source instances. "
              "Please use a different channel for external events in these "
              "scenarios."
          )
          return None
      return SocketIOOutput(self.sio, self.bot_message_evt)
  
imports: import logging
  import uuid
  import json
  from typing import Any, Awaitable, Callable, Dict, Iterable, List, Optional, Text
  import rasa.core.channels.channel
  from rasa.core.channels.channel import InputChannel, OutputChannel, UserMessage
  import rasa.shared.utils.io
  from sanic import Blueprint, response, Sanic
  from sanic.request import Request
  from sanic.response import HTTPResponse
  from socketio import AsyncServer
label_desc: Use image node_id 4 for calling the SocketIOInput obj's underlying member method code with example usage: obj.get_output_channel() and returns: SocketIOOutput, None