Table of Contents

Namespace BSGameLib.Server

Classes

ConnectionExtensions

Extension methods that act on a connection through a session registry.

ConnectionService<TSessionId>

Links session IDs and connections, both ways. A session ID and a connection can each be bound to one other, and no more.

GuidSessionIdFactory

Creates a new GUID as the session ID of each connection.

ServerHost

Runs a game's server. It builds the host, registers the server's services and runs it until it stops.

ServerSettings

The default IServerSettings, for a server configured in code.

SessionManagementExtensions

Adds session management to the server's services.

Interfaces

IChatMessage

A chat message the server has stored.

IChatProvider

Stores and finds the server's chat messages.

IConnectionManager<TSessionId>

Binds session IDs to connections and removes the bindings.

IConnectionRegistry<TSessionId>

Looks up the connection for a session ID, and the session ID for a connection.

IContainerBootstrapper

Obsolete. Implement IServiceBootstrapper instead.

IGameServer

The game's server: what it does when the server starts, on each tick of the game loop, and when it stops. The game implements it.

IInitializer

Runs code once at startup, before the server starts listening for clients.

IInjectedDependency

Marks a service the server registers automatically, with each of its interfaces, from the assemblies it scans.

IListenSocket

The server's connections to its clients, and the sends and disconnects that go to them.

IRepositoryService<TEntity>

Loads and saves entities of type TEntity by id. The server injects it into the game's code.

IRepository<TKey, TEntity>

Stores entities of type TEntity, keyed by TKey.

IServerSettings

The settings a server runs with. ServerSettings is the default implementation.

IServiceBootstrapper

Adds a game's services to the server's dependency injection container at startup. An implementation needs a public parameterless constructor.

ISessionIdFactory<TSessionId>

Creates the session ID for each new connection.