Agash.StreamTransport.Signaling
0.1.1-alpha
dotnet add package Agash.StreamTransport.Signaling --version 0.1.1-alpha
NuGet\Install-Package Agash.StreamTransport.Signaling -Version 0.1.1-alpha
<PackageReference Include="Agash.StreamTransport.Signaling" Version="0.1.1-alpha" />
<PackageVersion Include="Agash.StreamTransport.Signaling" Version="0.1.1-alpha" />
<PackageReference Include="Agash.StreamTransport.Signaling" />
paket add Agash.StreamTransport.Signaling --version 0.1.1-alpha
#r "nuget: Agash.StreamTransport.Signaling, 0.1.1-alpha"
#:package Agash.StreamTransport.Signaling@0.1.1-alpha
#addin nuget:?package=Agash.StreamTransport.Signaling&version=0.1.1-alpha&prerelease
#tool nuget:?package=Agash.StreamTransport.Signaling&version=0.1.1-alpha&prerelease
Agash.StreamTransport.Signaling
Transport-agnostic WebRTC signaling room router for Agash.StreamTransport.
The router owns the room registry, mints peer ids, routes SDP/ICE between peers
in a room, and announces joins and leaves. It carries no media - peers
negotiate WebRTC peer-to-peer and the encoded media never touches this process.
It depends only on Agash.StreamTransport.Abstractions (no WebRTC, codec, or
ASP.NET dependency), so the same router backs both:
- the standalone relay over a raw WebSocket endpoint, and
- a host application, bound to its existing SignalR hub.
Binding it to a transport
Implement ISignalingPeerTransport per connection (push a message down to that
peer) and drive a session:
var router = new SignalingRouter(iceServerProvider); // singleton
// per connection:
await using ISignalingSession session = router.Connect(myTransport);
// for each inbound message decoded from the socket:
await session.ReceiveAsync(message);
// session disposes on disconnect -> peer-left is announced, empty rooms GC'd
SignalingJson (in the abstractions package) gives the canonical wire format so
the WebSocket relay, a SignalR hub, and the room-aware client all agree.
Join rule
A Publisher creates its room if the code is unknown (so it owns the room and
survives reconnects); a Subscriber joining an unknown code is rejected with
RoomNotFound.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net11.0 is compatible. |
-
net11.0
- Agash.StreamTransport.Abstractions (>= 0.1.1-alpha)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Agash.StreamTransport.Signaling:
| Package | Downloads |
|---|---|
|
Agash.StreamTransport
Local-first peer-to-peer WebRTC media transport on a first-party WebRTC stack: hardware H.265 video, Opus audio, SCReAM congestion control, FlexFEC loss recovery, and ICE mobility. Capture-agnostic and NativeAOT-ready, with an abstracted signaling channel. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.1-alpha | 46 | 6/23/2026 |
| 0.1.0-alpha | 53 | 6/20/2026 |
| 0.0.0-alpha.0 | 53 | 6/20/2026 |