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:
parent
570f501a76
commit
9edcb83fc4
12 changed files with 216 additions and 335 deletions
|
@ -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)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
|
Reference in a new issue