3
0
Fork 0

CHG: refactor

CHG: use concurrent map instead of regular map with lock
DEL: global session control, moved to per server only
DEL: unused command system
This commit is contained in:
Thomas van Weert 2023-02-16 20:04:17 +01:00
parent 570f501a76
commit 9edcb83fc4
12 changed files with 216 additions and 335 deletions

View file

@ -10,10 +10,11 @@ import (
func Load(namespace socketio.Namespace, debug bool) {
namespace.OnEvent("data", func(so socketio.Socket, msg string) {
clientType := so.GetQuery().Get("type") == "server"
isServer := so.GetQuery().Get("type") == "server"
var ok bool
var server *objects.Server
if !clientType {
var err error
if !isServer {
ok, server = data.HasServer(so.GetQuery().Get("control_id"))
if !ok {
if debug {
@ -27,28 +28,39 @@ func Load(namespace socketio.Namespace, debug bool) {
return
}
_ = server.Socket.Emit("data", msg)
err = server.Socket.Emit("data", msg)
if err != nil && debug {
log.Println("error while sending data to server:", err)
}
return
}
ok, server = data.HasServer(so.GetQuery().Get("id"))
if !strings.HasPrefix(msg, "{") {
args := strings.SplitN(msg, "@", 2)
ok, session := server.HasSession(args[0])
if !ok {
if debug {
log.Println(
"Unable to send packet from server:",
server.ID,
"to client:",
args[0],
)
}
return
if msg[0] == '{' {
err = server.Socket.EmitError("messages can only be send to clients")
if err != nil && debug {
log.Println("error while sending data to server:", err)
}
_ = session.Emit("data", args[1])
return
}
args := strings.SplitN(msg, "@", 2)
ok, session := server.HasSession(args[0])
if !ok {
if debug {
log.Println(
"Unable to send packet from server:",
server.ID,
"to client:",
args[0],
)
}
return
}
err = session.Emit("data", args[1])
if err != nil && debug {
log.Println("error while sending data to server:", err)
}
})
}