2016-05-04 15 views
1

Ich weiß, RTCDataChannel verwendet SCTP, um die Verbindung zu initiieren, aber es scheint nicht SCTP-Paket (die DATA-Chunk, etc ..) verwenden, um die Verbindung zu initiieren, verwendet es SDP-Paket.Welche Art von Protokollpaket, das RTCDataChannel verwendet, um die Verbindung zu initiieren?

Als ich mit diesem demo und sehen Sie die Konsole versucht er das Paket wie folgt an:

v=0 
o=- 777388697042846508 2 IN IP4 127.0.0.1 
s=- 
t=0 0 
a=msid-semantic: WMS 
m=application 9 DTLS/SCTP 5000 
c=IN IP4 0.0.0.0 
a=ice-ufrag:ZE/xENc11wK9832B 
a=ice-pwd:s9JV35l6IzPCPzSAhdcZrO7P 
a=fingerprint:sha-256 AD:4B:A2:17:94:52:B5:68:8D:94:88:DD:37:98:B7:02:91:12:4D:FF:EE:32:76:80:11:12:AB:EE:4D:B7:15:16 
a=setup:actpass 
a=mid:data 
a=sctpmap:5000 webrtc-datachannel 1024 
common.js:8 14.954: Answer from remoteConnection 
v=0 
o=- 8720098635349520996 2 IN IP4 127.0.0.1 
s=- 
t=0 0 
a=msid-semantic: WMS 
m=application 9 DTLS/SCTP 5000 
c=IN IP4 0.0.0.0 
b=AS:30 
a=ice-ufrag:sVJDQDQk2/ONvM7v 
a=ice-pwd:ET9E6bl6qNpnZY2d7l5xKMDi 
a=fingerprint:sha-256 AD:4B:A2:17:94:52:B5:68:8D:94:88:DD:37:98:B7:02:91:12:4D:FF:EE:32:76:80:11:12:AB:EE:4D:B7:15:16 
a=setup:active 
a=mid:data 
a=sctpmap:5000 webrtc-datachannel 1024 

und wie ich weiß, das das Format der SDP-Paket ist.

Also kann mir jemand helfen?

Antwort

1

Um den Datachannel (und Ihre PeerConnection) zu initiieren, müssen Sie einen SDP (Codecs, Informationen über den Datachannel, ICE-Kandidaten usw.) zwischen Ihren Clients austauschen.

Dann können Sie einige Daten über die DC austauschen. Sie werden SCTP nicht sehen, da es unter DTLS/UDP gekapselt ist.

Aber SCTP wird nicht verwendet, um die Verbindung zu initialisieren. Es wird verwendet, um die Verbindung zu handhaben und die Daten des Datachannels auszutauschen.

+0

Was sind Daten des DataChannel, könnten Sie mir ein Beispiel dafür geben? –

+0

Es sind alle Daten, die Sie mit dem anderen Peer in der Webanwendung austauschen. Laut [mozilla.org] (https://developer.mozilla.org/fr/docs/Web/API/RTCDataChannel#Methods) 'Die Daten können ein DOMString, ein Blob, ein ArrayBuffer oder ein ArrayBufferView sein –