mirror of
https://github.com/giongto35/cloud-game.git
synced 2026-07-22 09:37:09 +00:00
Setup peerconnections for OverlordClient
This commit is contained in:
parent
37e943e5a5
commit
03bd3fb1cc
2 changed files with 55 additions and 2 deletions
|
|
@ -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...")
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue