mirror of
https://github.com/giongto35/cloud-game.git
synced 2026-08-03 23:34:01 +00:00
add candidate to server
This commit is contained in:
parent
69617658af
commit
81444a405b
3 changed files with 20 additions and 1 deletions
|
|
@ -62,6 +62,7 @@ conn.onmessage = e => {
|
|||
startWebRTC();
|
||||
break;
|
||||
case "sdp":
|
||||
log("Got remote sdp");
|
||||
pc.setRemoteDescription(new RTCSessionDescription(JSON.parse(atob(d["data"]))));
|
||||
break;
|
||||
}
|
||||
|
|
@ -206,7 +207,8 @@ function endInput() {
|
|||
}
|
||||
|
||||
pc.oniceconnectionstatechange = e => {
|
||||
log(pc.iceConnectionState);
|
||||
log(`iceConnectionState: ${pc.iceConnectionState}`);
|
||||
|
||||
if (pc.iceConnectionState === "connected") {
|
||||
conn.send(JSON.stringify({"id": "start", "data": ""}));
|
||||
startInput();
|
||||
|
|
@ -239,6 +241,7 @@ pc.onicecandidate = event => {
|
|||
// postSession(session)
|
||||
} else {
|
||||
console.log(JSON.stringify(event.candidate));
|
||||
conn.send(JSON.stringify({"id": "candidate", "data": JSON.stringify(event.candidate)}));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -250,6 +253,7 @@ function startWebRTC() {
|
|||
// send to ws
|
||||
session = btoa(JSON.stringify(pc.localDescription));
|
||||
localSessionDescription = session;
|
||||
log("Send SDP to remote peer");
|
||||
conn.send(JSON.stringify({"id": "sdp", "data": session}));
|
||||
});
|
||||
|
||||
|
|
|
|||
8
main.go
8
main.go
|
|
@ -1,6 +1,7 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
pionRTC "github.com/pions/webrtc"
|
||||
"fmt"
|
||||
"image"
|
||||
"io/ioutil"
|
||||
|
|
@ -112,6 +113,13 @@ func ws(w http.ResponseWriter, r *http.Request) {
|
|||
res.Data = localSession
|
||||
|
||||
case "candidate":
|
||||
hi := pionRTC.ICECandidateInit{}
|
||||
err = json.Unmarshal([]byte(req.Data), &hi)
|
||||
if err != nil {
|
||||
fmt.Println("[!] Cannot parse candidate: ", err)
|
||||
} else {
|
||||
webRTC.AddCandidate(hi)
|
||||
}
|
||||
res.ID = "candidate"
|
||||
|
||||
case "start":
|
||||
|
|
|
|||
|
|
@ -208,6 +208,13 @@ func (w *WebRTC) StartClient(remoteSession string, width, height int) (string, e
|
|||
return localSession, nil
|
||||
}
|
||||
|
||||
func (w *WebRTC) AddCandidate(candidate webrtc.ICECandidateInit) {
|
||||
err := w.connection.AddICECandidate(candidate)
|
||||
if err != nil {
|
||||
fmt.Println("Cannot add candidate: ", err)
|
||||
}
|
||||
}
|
||||
|
||||
// StopClient disconnect
|
||||
func (w *WebRTC) StopClient() {
|
||||
fmt.Println("===StopClient===")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue