public void UpdateOutput(SignaledPeer.Offer offer)
    {
        var offerPacket = MessagePackSerializer.Serialize(offer);

        OutputField.Text = MessagePackSerializer.ConvertToJson(offerPacket);
        Log.Information("Updated output; {UID}, {L}", offer.assignedUID, OutputField.Text.Length);
    }
Esempio n. 2
0
    public void JoinMesh(byte[] packet)
    {
        //first you need to remove yourself from the current mesh.
        RTCMP.Close();
        SignaledPeers = new Dictionary <int, SignaledPeer>();

        SignaledPeer.Offer incomingOffer = MessagePackSerializer.Deserialize <SignaledPeer.Offer>(packet);

        RTCMP.Initialize(incomingOffer.assignedUID);

        HandshakePeer = CreateSignaledPeer(incomingOffer.UID, SignaledPeer.ConnectionStateMachine.MANUAL, false);
        HandshakePeer.Connect(nameof(SignaledPeer.StatusUpdated), this, nameof(HandshakeStatusUpdated));
        HandshakePeer.PeerConnection.SetRemoteDescription(incomingOffer.type, incomingOffer.sdp);

        foreach (SignaledPeer.BufferedCandidate c in incomingOffer.ICECandidates)
        {
            HandshakePeer.BufferIceCandidate(c);
        }

        EmitSignal(nameof(ConnectedToSession), incomingOffer.assignedUID);
    }