from __future__ import annotations from typing import TYPE_CHECKING, Optional from realtime.types import RealtimeChannelOptions if TYPE_CHECKING: from .client import SyncRealtimeClient class SyncRealtimeChannel: """ `Channel` is an abstraction for a topic listener for an existing socket connection. Each Channel has its own topic and a list of event-callbacks that responds to messages. Should only be instantiated through `connection.RealtimeClient().channel(topic)`. """ def __init__( self, socket: SyncRealtimeClient, topic: str, params: Optional[RealtimeChannelOptions] = None, ) -> None: """ Initialize the Channel object. :param socket: RealtimeClient object :param topic: Topic that it subscribes to on the realtime server :param params: Optional parameters for connection. """