pause if no clients are connected

This commit is contained in:
Lennart Buhl 2016-02-07 17:46:20 +01:00
parent 0b1e623357
commit 0314ceae4a

View File

@ -81,29 +81,31 @@ func serveClients() {
level = data.LoadLevel(LevelFile) level = data.LoadLevel(LevelFile)
frameCounter = 0 frameCounter = 0
for { // while true for { // while true
for _, k := range clientKeys { if len(clients) > 0 { // pause if no clients are connected
id, client := k, clients[k] for _, k := range clientKeys {
if id > 0 { id, client := k, clients[k]
oFrame := level.GetFrame(0+frameCounter, client.w, frameCounter) if id > 0 {
enc := gob.NewEncoder(client.con) oFrame := level.GetFrame(0+frameCounter, client.w, frameCounter)
err := enc.Encode(oFrame) enc := gob.NewEncoder(client.con)
if err != nil { err := enc.Encode(oFrame)
// client disconnected if err != nil {
//log.Println("BEFORE remove: clients:", clients, " clientKeys:", clientKeys) // client disconnected
// delete client //log.Println("BEFORE remove: clients:", clients, " clientKeys:", clientKeys)
delete(clients, client.id) // delete client
// delete client key delete(clients, client.id)
// ugly as fuck in go to remove from a slice // delete client key
// it *should* work though // ugly as fuck in go to remove from a slice
idInKeys := sort.SearchInts(clientKeys, client.id) // it *should* work though
clientKeys = append(clientKeys[:idInKeys], clientKeys[idInKeys+1:]...) idInKeys := sort.SearchInts(clientKeys, client.id)
//log.Println("AFTER remove: clients:", clients, " clientKeys:", clientKeys) clientKeys = append(clientKeys[:idInKeys], clientKeys[idInKeys+1:]...)
//log.Println("AFTER remove: clients:", clients, " clientKeys:", clientKeys)
}
//log.Println("ID:", id, "Client:", client)
} }
//log.Println("ID:", id, "Client:", client)
} }
frameCounter++
time.Sleep(time.Second / time.Duration(level.FPS))
} }
frameCounter++
time.Sleep(time.Second / time.Duration(level.FPS))
} }
} }