Namespace Kuestenlogik.Bowire.Protocol.WebSocket
Classes
- BowireWebSocketProtocol
Bowire protocol plugin for raw WebSocket connections. Discovers endpoints either from
EndpointDataSourceentries that carry a WebSocketEndpointAttribute (embedded mode) or from the IWebSocketEndpointRegistry singleton the host wired up via AddBowireWebSocketEndpoints(IServiceCollection, Action<IWebSocketEndpointRegistry>?). Invocation goes exclusively through the channel API: there are no unary or server-streaming WebSocket methods. Also implements IInlineWebSocketChannel so other plugins (the GraphQL plugin's graphql-transport-ws subscription support) can open WebSocket channels — with sub-protocols + auth headers — without taking a compile-time dependency on this assembly.
- BowireWebSocketServiceCollectionExtensions
DI registration helpers for the Bowire WebSocket plugin.
- WebSocketEndpointAttribute
Marks an ASP.NET Core endpoint as a WebSocket endpoint that Bowire should expose in the sidebar. Use it on Minimal API delegates or controller actions that perform
HttpContext.WebSockets.AcceptWebSocketAsync.
- WebSocketEndpointInfo
One discovered (or manually registered) WebSocket endpoint.
- WebSocketEndpointRegistry
Default IWebSocketEndpointRegistry backed by a lock-guarded List<T>. Public so consumers who want to construct one directly (test fixtures, in-process embedding outside the standard DI extension) can do so without going through the service collection.
- WebSocketGroupAttribute
Groups one or more WebSocket endpoints into a named service in the Bowire sidebar. Without this attribute endpoints land in a generic "WebSocket" service (or their own DisplayName when only one endpoint is registered).
Interfaces
- IWebSocketEndpointRegistry
Per-container catalogue of WebSocketEndpointInfo instances Bowire's WebSocket plugin should surface in
DiscoverAsync, on top of anything the plugin finds via WebSocketEndpointAttribute on routed endpoints.Registered as a singleton through AddBowireWebSocketEndpoints(IServiceCollection, Action<IWebSocketEndpointRegistry>?). Replaces the pre-v1.7 process-wide static collection on
BowireWebSocketProtocol: a per-container instance keeps each ASP.NET host's endpoint list independent (tests, side-by-side in-process hosts) and removes the cross-test races the static collection produced.