Setup peerconnections for OverlordClient

This commit is contained in:
giongto35 2019-05-02 03:55:37 +08:00
parent 37e943e5a5
commit 03bd3fb1cc
2 changed files with 55 additions and 2 deletions

View file

@ -106,6 +106,32 @@ func initClient(t *testing.T, host string) (conn *websocket.Conn, roomID chan st
return cws.EmptyPacket
})
// Request Offer routing
client.Receive("requestOffer", func(resp cws.WSPacket) cws.WSPacket {
log.Println("Frontend received requestOffer")
peerConnection, err = webrtc.NewPeerConnection(webrtcconfig)
if err != nil {
t.Fatalf("%v", err)
}
log.Println("Recreating offer")
offer, err := peerConnection.CreateOffer(nil)
if err != nil {
t.Fatalf("%v", err)
}
log.Println("Set localDesc")
err = peerConnection.SetLocalDescription(offer)
if err != nil {
panic(err)
}
log.Println("return offer", offer)
return cws.WSPacket{
ID: "initwebrtc",
Data: gamertc.Encode(offer),
}
})
time.Sleep(time.Second * 3)
fmt.Println("Sending start...")
@ -252,6 +278,32 @@ func initClient2(t *testing.T, host string, remoteRoomID string) (conn *websocke
return cws.EmptyPacket
})
// Request offer browser
client.Receive("requestOffer", func(resp cws.WSPacket) cws.WSPacket {
log.Println("Frontend received requestOffer")
peerConnection, err = webrtc.NewPeerConnection(webrtcconfig)
if err != nil {
t.Fatalf("%v", err)
}
log.Println("Recreating offer")
offer, err := peerConnection.CreateOffer(nil)
if err != nil {
t.Fatalf("%v", err)
}
log.Println("Set localDesc")
err = peerConnection.SetLocalDescription(offer)
if err != nil {
panic(err)
}
log.Println("return offer", offer)
return cws.WSPacket{
ID: "initwebrtc",
Data: gamertc.Encode(offer),
}
})
time.Sleep(time.Second * 3)
fmt.Println("Sending start...")

View file

@ -23,7 +23,8 @@ func NewOverlordClient(oc *websocket.Conn) *OverlordClient {
}
oclient := &OverlordClient{
Client: cws.NewClient(oc),
Client: cws.NewClient(oc),
peerconnections: map[string]*webrtc.WebRTC{},
}
return oclient
}
@ -126,9 +127,9 @@ func (s *Session) bridgeConnection(serverID string, gameName string, roomID stri
Data: "",
})
log.Println("Sending offer to overlord to relay message to target host", resp.TargetHostID)
// Ask overlord to relay SDP packet to serverID
resp.TargetHostID = serverID
log.Println("Sending offer to overlord to relay message to target host", resp.TargetHostID, "with payload", resp)
remoteTargetSDP := s.OverlordClient.SyncSend(resp)
log.Println("Got back remote host SDP, sending to browser")
// Send back remote SDP of remote server to browser