diff --git a/socketserver/server/commands.go b/socketserver/server/commands.go index 6f67fe4e..ca9fb803 100644 --- a/socketserver/server/commands.go +++ b/socketserver/server/commands.go @@ -128,9 +128,6 @@ func C2SHello(conn *websocket.Conn, client *ClientInfo, msg ClientMessage) (rmsg return } - client.VersionString = copyString(version) - client.Version = VersionFromString(version) - if clientIDStr, ok := ary[1].(string); ok { client.ClientID = uuid.FromStringOrNil(clientIDStr) if client.ClientID == uuid.Nil { @@ -146,9 +143,11 @@ func C2SHello(conn *websocket.Conn, client *ClientInfo, msg ClientMessage) (rmsg return } + client.VersionString = copyString(version) + client.Version = VersionFromString(version) uniqueUserChannel <- client.ClientID - SubscribeGlobal(client) + client.HelloOK = true jsTime := float64(time.Now().UnixNano()/1000) / 1000 return ClientMessage{ diff --git a/socketserver/server/handlecore.go b/socketserver/server/handlecore.go index 99f26459..7824b05c 100644 --- a/socketserver/server/handlecore.go +++ b/socketserver/server/handlecore.go @@ -430,7 +430,7 @@ func runSocketWriter(conn *websocket.Conn, client *ClientInfo, errorChan <-chan } case msg := <-clientChan: - if client.VersionString == "" && msg.Command != HelloCommand { + if !client.HelloOK && msg.Command != HelloCommand { return CloseFirstMessageNotHello }