Für Projekte, die auf x64 abzielen
Install-Package Spitfirex64
Für Projekte, die auf x86 abzielen
Install-Package Spitfirex86
Zur Installation der Dienstprogramme
Install-Package SpitfireUtils
Spitfire ist ein Wrapper für den nativen WebRTC-Code, der es .NET-Anwendungen ermöglicht, Datenkanäle zu nutzen. Das Ziel besteht darin, es den Menschen zu ermöglichen, fantastische P2P-Anwendungen zu erstellen und die serverähnliche Nutzung von WebRTC zu vereinfachen.
Mit einem WebRTC-Datenkanal können Sie Text- oder Binärdaten über eine aktive Verbindung an einen Peer senden. Im Kontext eines Spiels können Spieler auf diese Weise Daten untereinander senden, sei es Text-Chat oder Informationen zum Spielstatus. Datenkanäle gibt es in zwei Varianten.
Zuverlässige Kanäle stellen sicher, dass die von Ihnen gesendeten Nachrichten beim anderen Peer in der gleichen Reihenfolge ankommen, in der sie gesendet wurden. Dies ist analog zu einem TCP-Socket.
Unzuverlässige Kanäle geben solche Garantien nicht; Es ist nicht garantiert, dass Nachrichten in einer bestimmten Reihenfolge eintreffen, und es ist auch nicht garantiert, dass sie überhaupt eintreffen. Dies ist analog zu einem UDP-Socket.
Eine kurze Erinnerung an die Unterschiede zwischen UDP und TCP finden Sie hier
Diese Bibliothek unterstützt derzeit keine Audio- und Videodateien. Bei ausreichender Nachfrage können wir jedoch darüber nachdenken, sie hinzuzufügen. Um sicherzustellen, dass dieser Code in allen Umgebungen läuft, implementieren wir während der Initialisierung gefälschte Audio-/Videogeräte.
Datenkanäle unterstützen nur das Senden winziger Datenfragmente. Es ist zwar möglich, komplette Dateien darüber zu senden, diese müssen jedoch zunächst in Blöcke aufgeteilt werden. Wir stellen einige Funktionen bereit, mit denen Sie dies schnell und ohne unnötiges Kopieren in DataChannelUtils
tun können. Es wird empfohlen, alle Nachrichten, die größer als 10 KB sind, in Blöcke aufzuteilen, um zu vermeiden, dass die 16-KB-Grenze erreicht wird.
Signalisierung ist der Prozess der Koordinierung der Kommunikation. Damit eine WebRTC-Anwendung einen Datenkanal einrichten kann, müssen ihre Clients Informationen austauschen. Spitfire stellt derzeit keinen Signalisierungsserver zur Verfügung, dies ist jedoch kein komplexer Prozess und Sie können hier weitere Informationen dazu finden.
Wenn Sie die Geschwindigkeit Ihrer Anwendung maximieren möchten, empfehlen wir die Kombination von Spitfire mit Sachiel, unserem schnellen Netzwerk-Messaging-Framework.
Wenn Sie Dokumentation, Codebeispiele oder Korrekturen beisteuern möchten, akzeptieren wir gerne Pull-Anfragen.
Um C++ zu erstellen, finden Sie die vorkompilierten WebRTC-Bibliotheken auf der Release-Seite hier. Das Erstellen von WebRTC selbst kann ziemlich schwierig sein, deshalb stellen wir hier auch Skripte dafür zur Verfügung.