Files
2024-11-30 17:55:02 -05:00

56 lines
1.4 KiB
Go

package client
import (
"fmt"
"log"
"github.com/gorilla/websocket"
)
func Run(generate_stats bool) {
// Connect to the WebSocket server
url := "ws://localhost:8080/ws"
conn, _, err := websocket.DefaultDialer.Dial(url, nil)
if err != nil {
log.Fatal("Dial error:", err)
}
defer conn.Close()
fmt.Println("Connected to the server")
// Start a goroutine to listen for messages from the server
go func(conn *websocket.Conn) {
var inputMsg Message
for {
err := conn.ReadJSON(&inputMsg)
if err != nil {
log.Println("Read error:", err)
return
}
fmt.Printf("Message from server: %s\n", inputMsg.Type)
if (inputMsg.Type == "join"){
go establishConnectionWithPeer(conn)
} else if (inputMsg.Type == "offer"){
go handleOffer(conn, inputMsg)
} else if (inputMsg.Type == "answer"){
go handleAnswer(inputMsg)
} else if(inputMsg.Type == "iceCandidate"){
go addICECandidate(inputMsg)
}
}
}(conn)
msg := Message{
Type: "join",
Content: "true",
}
conn.WriteJSON(msg)
<-connectionEstablishedChan
fmt.Println("Successfully established a WebRTC connection between clients")
openCameraFeed(userPeerConnection, userVideoTrack, generate_stats)
select {}
}