Interface IRealtimeClient<TSocket, TChannel>
- Namespace
- Supabase.Realtime.Interfaces
- Assembly
- Supabase.Realtime.dll
Contract representing a Realtime Client
public interface IRealtimeClient<TSocket, TChannel> : IGettableHeaders where TSocket : IRealtimeSocket where TChannel : IRealtimeChannel
Type Parameters
TSocketTChannel
- Inherited Members
-
IGettableHeaders.GetHeaders
Properties
Options
The options initializing this client.
ClientOptions Options { get; }
Property Value
SerializerSettings
Json serializer settings
JsonSerializerSettings SerializerSettings { get; }
Property Value
- JsonSerializerSettings
Socket
The connected realtime socket
IRealtimeSocket? Socket { get; }
Property Value
Subscriptions
A collection of channels ordered by topic name
ReadOnlyDictionary<string, TChannel> Subscriptions { get; }
Property Value
- ReadOnlyDictionary<string, TChannel>
Methods
AddDebugHandler(DebugEventHandler)
Adds a debug handler, likely used within a logging solution of some kind.
void AddDebugHandler(IRealtimeDebugger.DebugEventHandler handler)
Parameters
handlerIRealtimeDebugger.DebugEventHandler
AddStateChangedHandler(SocketStateEventHandler)
Add a Socket State listener
void AddStateChangedHandler(IRealtimeClient<TSocket, TChannel>.SocketStateEventHandler handler)
Parameters
handlerIRealtimeClient<TSocket, TChannel>.SocketStateEventHandler
Channel(string)
Initialize a new channel with an arbitrary channel name.
TChannel Channel(string channelName)
Parameters
channelNamestring
Returns
- TChannel
Channel(string, ChannelOptions)
Adds a RealtimeChannel subscription with custom options - if a subscription exists with the same signature, the existing subscription will be returned.
TChannel Channel(string channelName, ChannelOptions options)
Parameters
channelNamestringThe name of the Channel to join
optionsChannelOptionsCustom channel options for configuring the subscription
Returns
- TChannel
A RealtimeChannel instance representing the subscription
Exceptions
- Exception
Thrown when Socket is null, indicating Connect() was not called
Channel(string, string, string, string?, string?, Dictionary<string, string>?)
Shorthand initialization of a channel with postgres_changes options already set.
TChannel Channel(string database = "realtime", string schema = "public", string table = "*", string? column = null, string? value = null, Dictionary<string, string>? parameters = null)
Parameters
databasestringschemastringtablestringcolumnstringvaluestringparametersDictionary<string, string>
Returns
- TChannel
ClearDebugHandlers()
Clears debug handlers;
void ClearDebugHandlers()
ClearStateChangedHandlers()
Clear socket state listeners
void ClearStateChangedHandlers()
Connect(Action<IRealtimeClient<TSocket, TChannel>, RealtimeException?>?)
Connect to the Socket
IRealtimeClient<TSocket, TChannel> Connect(Action<IRealtimeClient<TSocket, TChannel>, RealtimeException?>? callback = null)
Parameters
callbackAction<IRealtimeClient<TSocket, TChannel>, RealtimeException>
Returns
- IRealtimeClient<TSocket, TChannel>
ConnectAsync()
Connect to the Socket
Task<IRealtimeClient<TSocket, TChannel>> ConnectAsync()
Returns
- Task<IRealtimeClient<TSocket, TChannel>>
Disconnect(WebSocketCloseStatus, string)
Disconnect from the Socket
IRealtimeClient<TSocket, TChannel> Disconnect(WebSocketCloseStatus code = WebSocketCloseStatus.NormalClosure, string reason = "Programmatic Disconnect")
Parameters
codeWebSocketCloseStatusreasonstring
Returns
- IRealtimeClient<TSocket, TChannel>
Remove(TChannel)
Remove an initialized IRealtimeChannel
void Remove(TChannel channel)
Parameters
channelTChannel
RemoveDebugHandler(DebugEventHandler)
Removes a debug handler
void RemoveDebugHandler(IRealtimeDebugger.DebugEventHandler handler)
Parameters
handlerIRealtimeDebugger.DebugEventHandler
RemoveStateChangedHandler(SocketStateEventHandler)
Remove a Socket State listener
void RemoveStateChangedHandler(IRealtimeClient<TSocket, TChannel>.SocketStateEventHandler handler)
Parameters
handlerIRealtimeClient<TSocket, TChannel>.SocketStateEventHandler
SetAuth(string)
Sets the authentication JWT to be passed into all realtime channels. Used for WALRUS permissions.
void SetAuth(string jwt)
Parameters
jwtstring