Baseline Widely available
Die send()
-Methode des RTCDataChannel
-Interfaces sendet Daten über den Datenkanal zum Remote-Peer. Dies kann jederzeit geschehen, auÃer während des Anfangsprozesses der Erstellung des zugrunde liegenden Transportkanals. Daten, die vor dem Verbindungsaufbau gesendet werden, werden, wenn möglich, zwischengespeichert (oder es tritt ein Fehler auf, falls dies nicht möglich ist) und werden ebenfalls zwischengespeichert, wenn sie während des SchlieÃens oder nach dem SchlieÃen der Verbindung gesendet werden.
Hinweis: Verschiedene Browser haben unterschiedliche Beschränkungen bezüglich der GröÃe der Nachricht, die Sie senden können. Es gibt Spezifikationen, um zu definieren, wie groÃe Nachrichten automatisch fragmentiert werden können, jedoch implementieren nicht alle Browser diese, und diejenigen, die es tun, haben verschiedene zusätzliche Beschränkungen. Dies wird im Laufe der Zeit weniger kompliziert werden, aber wenn Sie jetzt Fragen dazu haben, lesen Sie bitte Verstehen von Nachrichtenbegrenzungen.
Syntax Parameterdata
Die Daten, die über die Verbindung übertragen werden sollen. Dies kann ein String, ein Blob
, ein ArrayBuffer
, ein TypedArray
oder ein DataView
-Objekt sein.
Keiner (undefined
).
InvalidStateError
DOMException
Wird ausgelöst, wenn der Datenkanal seine eigene Verbindung noch nicht fertiggestellt hat (das heiÃt, sein readyState
ist connecting
). Der Datenkanal muss seine eigene Verbindung herstellen, da er einen separaten Transportkanal von dem der Medieninhalte verwendet. Dieser Fehler tritt ohne Senden oder Zwischenspeichern der data
auf.
NetworkError
DOMException
Wird ausgelöst, wenn die angegebenen data
zwischengespeichert werden müssten und dafür kein Platz im Puffer ist. In diesem Szenario wird der zugrunde liegende Transport sofort geschlossen.
TypeError
Wird ausgelöst, wenn die angegebenen data
zu groà sind, damit der andere Peer sie empfangen kann. Da es mehrere Techniken gibt, um groÃe Daten in kleinere Stücke für die Ãbertragung aufzuteilen, kann es zu Szenarien kommen, in denen der andere Peer nicht die gleichen Techniken unterstützt. Zum Beispiel, wenn ein Peer ein moderner Browser ist, der das EOR
(End of Record)-Flag unterstützt, um anzuzeigen, wann eine empfangene Nachricht das letzte Stück eines mehrteiligen Objekts ist, das mit send()
gesendet wird. Für weitere Informationen über GröÃenbeschränkungen von Nachrichten siehe Verstehen von Nachrichtenbegrenzungen.
In diesem Beispiel wird eine Routine namens sendMessage()
erstellt; sie akzeptiert ein Objekt als Eingabe und sendet über das RTCDataChannel
ein JSON-String mit dem angegebenen Objekt und einem Zeitstempel an den Remote-Peer.
const pc = new RTCPeerConnection();
const dc = pc.createDataChannel("BackChannel");
function sendMessage(msg) {
const obj = {
message: msg,
timestamp: new Date(),
};
dc.send(JSON.stringify(obj));
}
Spezifikationen Browser-Kompatibilität Siehe auch
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4