Table of Contents

Namespace BSGameLib.Networking

Classes

AssemblyScanner

Finds the types and assemblies that automatic registration should use. Anything marked DoNotRegisterAttribute is skipped.

ClientAdapter

The client side of the network. It connects to a server, sends packets to it and runs the handlers for the packets it receives.

ClientEventArgs

Event data for a client connection event.

ConnectionStatistics

One connection's traffic and round-trip time, as its transport measured them.

Constants

Limits and timings that the transports use. They are fixed, not configurable.

DataPacketManager

Serializes packets and runs their handlers. The client and server adapters use it to handle the packets they receive.

DataPacketSerializer

Converts packets to and from the bytes of a frame.

NetworkAdapterConfiguration

Settings for a client or server adapter: the port, the address to bind to and the QUIC settings.

NetworkStatistics

A transport's traffic since it started, and each open connection's.

PacketHandlingException

A packet's handler threw. Says which packet, and carries what the handler threw as its inner exception.

PacketTypeDiscovery

Every packet type a game can receive: each IDataPacket in the given assemblies and in the assemblies its handled packets come from, and each packet a handler names.

QuicTransportConfiguration

The QUIC settings: the server's certificate, the protocol name and how identity is checked.

ServerAdapter

The server side of the network. It accepts client connections, sends packets to them and runs the handlers for the packets they send.

ServiceProviderDataPacketHandlerProvider

Finds packet handlers in a service provider: the handler for a packet type is the IDataPacketHandler<TPacket> the provider resolves.

ServiceProviderDataPacketProvider

Supplies the packet types it was given.

SimpleDataPacketHandlerProvider

A handler provider that holds its handlers in memory, for a game that registers them itself.

SimpleDataPacketProvider

Supplies the packet types registered with it, for a game that registers them itself.

TofuServerIdentityVerifier

Default IServerIdentityVerifier: trust-on-first-use fingerprint pinning backed by a local JSON file, keyed by whatever serverKey the caller uses to identify a server (e.g. "host:port"). See docs/quic-connection-authentication.md.

TypeHasher

Names packet types on the wire by a hash of their names.

Interfaces

IClientAdapter

The client side of the network, as a game sees it.

IDataPacket

A packet sent between a client and a server. Its public instance properties are its contents.

IDataPacketFactory<T>

Creates packets of type T. Nothing in BSGameLib calls it.

IDataPacketHandler

Handles a packet of any type, given as IDataPacket.

IDataPacketHandlerProvider

Supplies the handlers for each packet type.

IDataPacketHandler<TPacket>

Handles packets of type TPacket that a client sent. Handlers run on the transport's receive threads, unless the adapter's HandlerRunner says otherwise.

IDataPacketManager

Serializes packets and runs their handlers.

IDataPacketProvider

Supplies the packet types a game can receive.

INetConnection

A connection to a peer: a client, as the server sees it.

INetworkAdapter

A client or server adapter: an object with a packet manager, which serializes and handles its packets.

IServerAdapter

The server side of the network. Clients connect, packets are sent to and from them, and the handlers for the packets they send are run.

IServerIdentityVerifier

Verifies a QUIC server's identity by certificate fingerprint. See docs/quic-connection-authentication.md for the trust-on-first-use (TOFU) design this supports and how it composes with a consumer-supplied trust source.