-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathnet-util.go
47 lines (36 loc) · 834 Bytes
/
net-util.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
package main
import (
"sync"
"nhooyr.io/websocket"
)
var writeLock sync.Mutex
func sendCommand(header CMD, data []byte) bool {
writeLock.Lock()
defer writeLock.Unlock()
if localPlayer.conn == nil {
return false
}
cmdName := cmdNames[header]
if header != CMD_Move {
if cmdName == "" {
doLog(true, "Sent: %x", header)
} else {
doLog(true, "Sent: %v", cmdName)
}
}
var err error
if data == nil {
err = localPlayer.conn.Write(localPlayer.context, websocket.MessageBinary, []byte{byte(header)})
} else {
err = localPlayer.conn.Write(localPlayer.context, websocket.MessageBinary, append([]byte{byte(header)}, data...))
}
if err != nil {
doLog(true, "sendCommand error: %v", err)
if gameMode == MODE_Playing {
chat("Connection lost!")
connectServer()
}
return false
}
return true
}