ASP.NET Core Server for the PeerJS library which simplifies peer-to-peer data, video, and audio calls.
To broker connections, PeerJS connects to a PeerServer. Note that no peer-to-peer data goes through the server; The server acts only as a connection broker.
This is an ASP.NET Core port of the Node.js implementation.
public void ConfigureServices(IServiceCollection services)
{
...
// register PeerJs Server dependencies
services.AddPeerJsServer();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
...
// enable PeerJs Server middleware
app.UsePeerJsServer();
}
That's it, we're good to go.
The repository also contains a demo project.
However, we can read more about the library usage on the official website. Here's a quick sample:
Add the PeerJS client library to your webpage:
<script src="https://unpkg.com/peerjs@1.0.0/dist/peerjs.min.js"></script>
Create the Peer object:
const peer = new Peer(randomId, {
host: 'localhost',
port: 44329,
path: '/'
});
Start a call:
// Call a peer, providing our mediaStream
navigator.mediaDevices
.getUserMedia({
audio: true,
video: true
})
.then(function (mediaStream) {
myVideo.srcObject = mediaStream;
// Call a peer, providing our mediaStream
var call = peer.call('dest-peer-id', mediaStream);
});
Answer call:
peer.on('call', function(call) {
// Answer the call, providing our mediaStream
call.answer(mediaStream);
});
Use the stream:
call.on('stream', function(stream) {
// `stream` is the MediaStream of the remote peer.
// Here you'd add it to an HTML video/canvas element.
});