File tree Expand file tree Collapse file tree 3 files changed +24
-15
lines changed
Expand file tree Collapse file tree 3 files changed +24
-15
lines changed Original file line number Diff line number Diff line change @@ -44,7 +44,7 @@ class JsWebRtcPeer extends Peer{
4444 /**
4545 * connect to WebrtcPeer
4646 */
47- connect (JsWebRtcPeer o){
47+ Future connect (JsWebRtcPeer o){
4848
4949 /// add ice candidates
5050 rtcPeerConnection.onicecandidate = (event) {
@@ -71,7 +71,7 @@ class JsWebRtcPeer extends Peer{
7171 }
7272 };
7373
74- /// add Datachannel
74+ /// create datachannel
7575
7676 try {
7777 dc = rtcPeerConnection.createDataChannel ("sendDataChannel" , js.map (dataChannelOptions));
@@ -94,13 +94,17 @@ class JsWebRtcPeer extends Peer{
9494
9595 //test datachannel
9696 //dataChannel.send("test");
97+ connection_completer.complete ("wuhuu" );
9798 });
98- }, (e)=> print (e), {});
99-
100-
99+ }, (e){
100+ connection_completer.completeError (e, e.stackTrace);
101+ }, {});
102+
101103 } catch (e) {
102- log. warning ( "could not create DataChannel: " + e. toString ());
104+ connection_completer. completeError (e, e.stackTrace);
103105 }
106+
107+ return connection_completer.future;
104108 }
105109
106110
Original file line number Diff line number Diff line change @@ -29,6 +29,10 @@ abstract class Peer{
2929 ///todo: generalize and add to connections to support multiple states
3030 StreamController <String > readyStateEvent;
3131
32+ ///completer for connection
33+ ///TODO: use another generic type
34+ var connection_completer = new Completer <String >();
35+
3236 /**
3337 * constuctor
3438 */
@@ -69,7 +73,7 @@ abstract class Peer{
6973 *
7074 * @param Peer other
7175 */
72- connect (Peer other);
76+ Future connect (Peer other);
7377
7478 /**
7579 * send Message to other peer
Original file line number Diff line number Diff line change @@ -35,26 +35,27 @@ void main() {
3535 });
3636
3737 /**
38- * Test Connection
38+ * Test connection
3939 */
4040 test ('Webrtc connect' ,(){
4141 JsWebRtcPeer alice = new JsWebRtcPeer ("alice" );
4242 JsWebRtcPeer bob = new JsWebRtcPeer ("bob" );
4343
44- alice.connect (bob);
44+ expect ( alice.connect (bob), completes );
4545 });
4646
47+
48+
4749 /**
48- * test status opens
50+ * test DataChannel's readyState opens
4951 */
50- test ('webrtc datachannel open ' , (){
52+ test ('webrtc datachannel' , (){
5153 JsWebRtcPeer alice = new JsWebRtcPeer ("alice" );
5254 JsWebRtcPeer bob = new JsWebRtcPeer ("bob" );
5355
54- alice.readyStateEvent.stream.listen ((String status){
55- if (status == "open" )
56- expectAsync0 ((){});
57- });
56+ _callback (String status) => expect (status, "open" );
57+
58+ alice.readyStateEvent.stream.listen (expectAsync1 (_callback));
5859
5960 alice.connect (bob);
6061
You can’t perform that action at this time.
0 commit comments