WebRTCme.Middleware
26.9.21
dotnet add package WebRTCme.Middleware --version 26.9.21
NuGet\Install-Package WebRTCme.Middleware -Version 26.9.21
<PackageReference Include="WebRTCme.Middleware" Version="26.9.21" />
<PackageVersion Include="WebRTCme.Middleware" Version="26.9.21" />
<PackageReference Include="WebRTCme.Middleware" />
paket add WebRTCme.Middleware --version 26.9.21
#r "nuget: WebRTCme.Middleware, 26.9.21"
#:package WebRTCme.Middleware@26.9.21
#addin nuget:?package=WebRTCme.Middleware&version=26.9.21
#tool nuget:?package=WebRTCme.Middleware&version=26.9.21
WebRTCme.Middleware
A working call app without writing the plumbing.
This is the services layer of WebRTCme, the WebRTC library that gives .NET one API across Blazor WebAssembly, Android, iOS, Mac Catalyst and Windows. On top of the raw API it adds a video tile you can bind to a stream, media and device managers, call and chat view models, and a connection layer that does the signalling for you β peer-to-peer, or through a mediasoup SFU.
dotnet add package WebRTCme.Middleware
This package depends on WebRTCme, so referencing it brings both. You never reference a binding
directly. If you have your own signalling and UI, or you are building a library, take
WebRTCme alone instead.
π Documentation is in the Wiki
| Getting started | Installing the packages and wiring them into a Blazor or MAUI app |
| Hello world | Sixty lines that negotiate a real connection β no server, no camera, no network |
| Platform prerequisites | Read this before filing a bug. Three traps, each of which fails silently |
| What works where | Honest per-platform matrix, including what is unverified |
| Releases | Versions, upgrading from 2.0.0, what is embedded |
| Troubleshooting | Symptoms, and what actually causes them |
What is in it
- A video tile. One control, bound to a media stream, rendering natively on every platform.
- Media and device managers. Cameras, microphones, switching and muting.
- Call and chat view models, shared by the Blazor and MAUI sample apps.
- A connection layer. Mesh signalling over SignalR for peer-to-peer, and a C# port of mediasoup-client for group calls through an SFU.
Every target framework is in the package β net10.0 for Blazor, plus net10.0-android,
net10.0-ios, net10.0-maccatalyst and net10.0-windows10.0.22621.0 for .NET MAUI β so you
reference the same package whatever you are building and NuGet picks the slice that matches.
.NET 10 only. The 2.0.0 line is the .NET 8 line and is frozen; there is no back-port. Upgrading from 2.0.0 takes three edits β see Releases.
Credits
Special thanks to GΓΈran Yri for his major contributions to the .NET MAUI porting.
WebRTCme is MIT licensed. It embeds Google's WebRTC and its dependencies, which carry their own terms β see what is inside the packages.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-android36.0 is compatible. net10.0-browser was computed. net10.0-ios was computed. net10.0-ios26.0 is compatible. net10.0-maccatalyst was computed. net10.0-maccatalyst26.0 is compatible. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. net10.0-windows10.0.22621 is compatible. |
-
net10.0
- BlazorDialog (>= 4.2.1)
- Blazorme.StreamSaver (>= 26.9.14)
- Microsoft.AspNetCore.Components (>= 10.0.12)
- Microsoft.AspNetCore.Components.Web (>= 10.0.12)
- Microsoft.AspNetCore.SignalR.Client (>= 10.0.12)
- Microsoft.AspNetCore.SignalR.Protocols.MessagePack (>= 10.0.12)
- Microsoft.Bcl.AsyncInterfaces (>= 10.0.12)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.12)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.12)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.12)
- Microsoft.Extensions.Logging.Debug (>= 10.0.12)
- Microsoft.Maui.Essentials (>= 10.0.101)
- Refractored.MvvmHelpers (>= 1.6.2)
- System.Reactive (>= 7.0.0)
- Utilme.Result (>= 26.9.14)
- Utilme.SdpTransform (>= 26.9.14)
- WebRTCme (>= 26.9.21)
- WebsocketClientLite.PCL (>= 9.1.0)
-
net10.0-android36.0
- CommunityToolkit.Maui (>= 15.0.1)
- Microsoft.AspNetCore.SignalR.Client (>= 10.0.12)
- Microsoft.AspNetCore.SignalR.Protocols.MessagePack (>= 10.0.12)
- Microsoft.Bcl.AsyncInterfaces (>= 10.0.12)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.12)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.12)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.12)
- Microsoft.Extensions.Logging.Debug (>= 10.0.12)
- Microsoft.JSInterop (>= 10.0.12)
- Microsoft.Maui.Controls (>= 10.0.101)
- Microsoft.Maui.Controls.Compatibility (>= 10.0.101)
- Microsoft.Maui.Essentials (>= 10.0.101)
- Refractored.MvvmHelpers (>= 1.6.2)
- System.Reactive (>= 7.0.0)
- Utilme.Result (>= 26.9.14)
- Utilme.SdpTransform (>= 26.9.14)
- WebRTCme (>= 26.9.21)
- WebsocketClientLite.PCL (>= 9.1.0)
-
net10.0-ios26.0
- CommunityToolkit.Maui (>= 15.0.1)
- Microsoft.AspNetCore.SignalR.Client (>= 10.0.12)
- Microsoft.AspNetCore.SignalR.Protocols.MessagePack (>= 10.0.12)
- Microsoft.Bcl.AsyncInterfaces (>= 10.0.12)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.12)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.12)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.12)
- Microsoft.Extensions.Logging.Debug (>= 10.0.12)
- Microsoft.JSInterop (>= 10.0.12)
- Microsoft.Maui.Controls (>= 10.0.101)
- Microsoft.Maui.Controls.Compatibility (>= 10.0.101)
- Microsoft.Maui.Essentials (>= 10.0.101)
- Refractored.MvvmHelpers (>= 1.6.2)
- System.Reactive (>= 7.0.0)
- Utilme.Result (>= 26.9.14)
- Utilme.SdpTransform (>= 26.9.14)
- WebRTCme (>= 26.9.21)
- WebsocketClientLite.PCL (>= 9.1.0)
-
net10.0-maccatalyst26.0
- CommunityToolkit.Maui (>= 15.0.1)
- Microsoft.AspNetCore.SignalR.Client (>= 10.0.12)
- Microsoft.AspNetCore.SignalR.Protocols.MessagePack (>= 10.0.12)
- Microsoft.Bcl.AsyncInterfaces (>= 10.0.12)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.12)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.12)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.12)
- Microsoft.Extensions.Logging.Debug (>= 10.0.12)
- Microsoft.JSInterop (>= 10.0.12)
- Microsoft.Maui.Controls (>= 10.0.101)
- Microsoft.Maui.Controls.Compatibility (>= 10.0.101)
- Microsoft.Maui.Essentials (>= 10.0.101)
- Refractored.MvvmHelpers (>= 1.6.2)
- System.Reactive (>= 7.0.0)
- Utilme.Result (>= 26.9.14)
- Utilme.SdpTransform (>= 26.9.14)
- WebRTCme (>= 26.9.21)
- WebsocketClientLite.PCL (>= 9.1.0)
-
net10.0-windows10.0.22621
- CommunityToolkit.Maui (>= 15.0.1)
- Microsoft.AspNetCore.SignalR.Client (>= 10.0.12)
- Microsoft.AspNetCore.SignalR.Protocols.MessagePack (>= 10.0.12)
- Microsoft.Bcl.AsyncInterfaces (>= 10.0.12)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.12)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.12)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.12)
- Microsoft.Extensions.Logging.Debug (>= 10.0.12)
- Microsoft.JSInterop (>= 10.0.12)
- Microsoft.Maui.Controls (>= 10.0.101)
- Microsoft.Maui.Controls.Compatibility (>= 10.0.101)
- Microsoft.Maui.Essentials (>= 10.0.101)
- Refractored.MvvmHelpers (>= 1.6.2)
- System.Reactive (>= 7.0.0)
- Utilme.Result (>= 26.9.14)
- Utilme.SdpTransform (>= 26.9.14)
- WebRTCme (>= 26.9.21)
- WebsocketClientLite.PCL (>= 9.1.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
New major release.