-
Notifications
You must be signed in to change notification settings - Fork 0
/
server.go
49 lines (36 loc) · 1.02 KB
/
server.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package main
import (
"fmt"
"golang.org/x/net/websocket"
"math/rand"
"time"
)
var words = []string{"programmer", "ambient", "diffuser", "aesthetic", "alternative"}
var clients []Client
var usernames []UserScore
var wsHandler = websocket.Handler(onWsConnect)
func onWsConnect(ws *websocket.Conn) {
defer ws.Close()
client := NewClient(ws)
clients = addClientAndGreet(clients, client)
client.listen()
}
func broadcast(msg *Message) {
fmt.Printf("Broadcasting %+v\n", msg)
for _, c := range clients {
c.ch <- msg
}
}
func addClientAndGreet(list []Client, client Client) []Client {
clients = append(list, client)
websocket.JSON.Send(client.connection, Message{"Server", "Welcome!"})
websocket.JSON.Send(client.connection, Message{"Word", myWord.encryptedWord})
for i := 0; i < len(myWord.lettersGuessed); i++ {
websocket.JSON.Send(client.connection, Message{"Letter", myWord.lettersGuessed[i]})
}
return clients
}
func randWord() *Word {
rand.Seed(time.Now().UTC().UnixNano())
return makeWord(words[rand.Int() % 5])
}