mirror of
https://github.com/giongto35/cloud-game.git
synced 2026-07-28 12:36:30 +00:00
Flag to turn off monitor
This commit is contained in:
parent
f5bb8f8593
commit
bf3454d230
5 changed files with 27 additions and 30 deletions
10
config/config.go
Normal file
10
config/config.go
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
package config
|
||||
|
||||
import "flag"
|
||||
|
||||
const defaultoverlord = "ws://localhost:9000/wso"
|
||||
|
||||
var IsDebug = flag.Bool("debug", false, "Is game running in debug mode?")
|
||||
var OverlordHost = flag.String("overlordhost", defaultoverlord, "Specify the path for overlord. If the flag is `overlord`, the server will be run as overlord")
|
||||
var Port = flag.String("port", "8000", "Port of the game")
|
||||
var IsMonitor = flag.Bool("monitor", false, "Turn on monitor")
|
||||
25
main.go
25
main.go
|
|
@ -14,6 +14,7 @@ import (
|
|||
"sync"
|
||||
"time"
|
||||
|
||||
"github.com/giongto35/cloud-game/config"
|
||||
"github.com/giongto35/cloud-game/ui"
|
||||
"github.com/giongto35/cloud-game/util"
|
||||
"github.com/giongto35/cloud-game/webrtc"
|
||||
|
|
@ -60,22 +61,16 @@ var peerconnections = map[string]*webrtc.WebRTC{}
|
|||
var serverID = ""
|
||||
var oclient *Client
|
||||
|
||||
const defaultoverlord = "ws://localhost:9000/wso"
|
||||
|
||||
var isDebug = flag.Bool("debug", false, "Is game running in debug mode?")
|
||||
var overlordHost = flag.String("overlordhost", defaultoverlord, "Specify the path for overlord. If the flag is `overlord`, the server will be run as overlord")
|
||||
var port = flag.String("port", "8000", "Port of the game")
|
||||
|
||||
func main() {
|
||||
flag.Parse()
|
||||
fmt.Println("Usage: ./game [debug]")
|
||||
if *isDebug {
|
||||
if *config.IsDebug {
|
||||
// debug
|
||||
indexFN = debugIndex
|
||||
fmt.Println("Use debug version")
|
||||
}
|
||||
|
||||
if *overlordHost == "overlord" {
|
||||
if *config.OverlordHost == "overlord" {
|
||||
fmt.Println("Running as overlord ")
|
||||
IsOverlord = true
|
||||
} else {
|
||||
|
|
@ -99,8 +94,8 @@ func main() {
|
|||
|
||||
log.Println("oclient ", oclient)
|
||||
if !IsOverlord {
|
||||
fmt.Println("http://localhost:" + *port)
|
||||
http.ListenAndServe(":"+*port, nil)
|
||||
fmt.Println("http://localhost:" + *config.Port)
|
||||
http.ListenAndServe(":"+*config.Port, nil)
|
||||
} else {
|
||||
fmt.Println("http://localhost:9000")
|
||||
// Overlord expose one more path for handle overlord connections
|
||||
|
|
@ -454,7 +449,7 @@ func bridgeConnection(session *Session, serverID string, gameName string, roomID
|
|||
}
|
||||
|
||||
func createOverlordConnection() (*websocket.Conn, error) {
|
||||
c, _, err := websocket.DefaultDialer.Dial(*overlordHost, nil)
|
||||
c, _, err := websocket.DefaultDialer.Dial(*config.OverlordHost, nil)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
@ -470,14 +465,6 @@ func NewOverlordClient() *Client {
|
|||
return nil
|
||||
}
|
||||
oclient := NewClient(oc)
|
||||
oclient.send(
|
||||
WSPacket{
|
||||
ID: "ping",
|
||||
},
|
||||
func(resp WSPacket) {
|
||||
log.Println("Received pong full flow")
|
||||
},
|
||||
)
|
||||
|
||||
// Received from overlord the serverID
|
||||
oclient.receive(
|
||||
|
|
|
|||
|
|
@ -46,13 +46,6 @@ func wso(w http.ResponseWriter, r *http.Request) {
|
|||
nil,
|
||||
)
|
||||
|
||||
client.receive("ping", func(resp WSPacket) WSPacket {
|
||||
log.Println("received Ping, sending Pong")
|
||||
return WSPacket{
|
||||
ID: "pong",
|
||||
}
|
||||
})
|
||||
|
||||
client.receive("registerRoom", func(resp WSPacket) WSPacket {
|
||||
log.Println("Received registerRoom ", resp.Data, serverID)
|
||||
roomToServer[resp.Data] = serverID
|
||||
|
|
|
|||
|
|
@ -5,6 +5,8 @@ import (
|
|||
"log"
|
||||
"time"
|
||||
"unsafe"
|
||||
|
||||
"github.com/giongto35/cloud-game/config"
|
||||
)
|
||||
|
||||
// https://chromium.googlesource.com/webm/libvpx/+/master/examples/simple_encoder.c
|
||||
|
|
@ -145,7 +147,9 @@ func (v *VpxEncoder) startLooping() {
|
|||
v.Output <- bs
|
||||
}
|
||||
|
||||
log.Println("Encoding time: ", time.Now().Sub(beginEncoding))
|
||||
if *config.IsMonitor {
|
||||
log.Println("Encoding time: ", time.Now().Sub(beginEncoding))
|
||||
}
|
||||
}
|
||||
}()
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,12 +12,13 @@ import (
|
|||
"math/rand"
|
||||
"time"
|
||||
|
||||
"github.com/giongto35/cloud-game/config"
|
||||
vpxEncoder "github.com/giongto35/cloud-game/vpx-encoder"
|
||||
"github.com/pion/webrtc"
|
||||
"github.com/pion/webrtc/pkg/media"
|
||||
)
|
||||
|
||||
var config = webrtc.Configuration{ICEServers: []webrtc.ICEServer{{URLs: []string{"stun:stun.l.google.com:19302"}}}}
|
||||
var webrtcconfig = webrtc.Configuration{ICEServers: []webrtc.ICEServer{{URLs: []string{"stun:stun.l.google.com:19302"}}}}
|
||||
|
||||
// Allows compressing offer/answer to bypass terminal input limits.
|
||||
const compress = false
|
||||
|
|
@ -144,7 +145,7 @@ func (w *WebRTC) StartClient(remoteSession string, width, height int) (string, e
|
|||
|
||||
log.Println("=== StartClient ===")
|
||||
|
||||
w.connection, err = webrtc.NewPeerConnection(config)
|
||||
w.connection, err = webrtc.NewPeerConnection(webrtcconfig)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
|
@ -274,7 +275,9 @@ func (w *WebRTC) startStreaming(vp8Track *webrtc.Track) {
|
|||
go func() {
|
||||
for w.isConnected {
|
||||
bs := <-w.encoder.Output
|
||||
log.Println("FPS : ", w.calculateFPS())
|
||||
if *config.IsMonitor {
|
||||
log.Println("FPS : ", w.calculateFPS())
|
||||
}
|
||||
vp8Track.WriteSample(media.Sample{Data: bs, Samples: 1})
|
||||
}
|
||||
}()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue