Class ConnectionService<TSessionId>
- Namespace
- BSGameLib.Server
- Assembly
- BSGameLib.Server.dll
Links session IDs and connections, both ways. A session ID and a connection can each be bound to one other, and no more.
public class ConnectionService<TSessionId> : IConnectionRegistry<TSessionId>, IConnectionManager<TSessionId> where TSessionId : notnull
Type Parameters
TSessionId
- Inheritance
-
ConnectionService<TSessionId>
- Implements
-
IConnectionRegistry<TSessionId>IConnectionManager<TSessionId>
- Inherited Members
Methods
Bind(TSessionId, INetConnection)
Binds sessionId to connection.
public void Bind(TSessionId sessionId, INetConnection connection)
Parameters
sessionIdTSessionIdconnectionINetConnection
Exceptions
- InvalidOperationException
Either one is already bound.
GetAllBindings()
Returns a snapshot of every session ID and the connection bound to it.
public IEnumerable<(TSessionId SessionId, INetConnection Connection)> GetAllBindings()
Returns
- IEnumerable<(TSessionId SessionId, INetConnection Connection)>
TryBind(TSessionId, INetConnection)
Binds sessionId to connection when neither is bound
yet. Returns false when either one is already bound.
public bool TryBind(TSessionId sessionId, INetConnection connection)
Parameters
sessionIdTSessionIdconnectionINetConnection
Returns
TryGetConnection(TSessionId, out INetConnection)
Returns the connection bound to sessionId. Returns false when there is
none.
public bool TryGetConnection(TSessionId sessionId, out INetConnection connection)
Parameters
sessionIdTSessionIdconnectionINetConnection
Returns
TryGetSessionId(INetConnection, out TSessionId)
Returns the session ID bound to connection. Returns false when there is
none.
public bool TryGetSessionId(INetConnection connection, out TSessionId sessionId)
Parameters
connectionINetConnectionsessionIdTSessionId
Returns
UnbindByConnection(INetConnection)
Removes the binding for connection. Returns false when it had none.
public bool UnbindByConnection(INetConnection connection)
Parameters
connectionINetConnection
Returns
UnbindBySessionId(TSessionId)
Removes the binding for sessionId. Returns false when it had none.
public bool UnbindBySessionId(TSessionId sessionId)
Parameters
sessionIdTSessionId