diff --git a/socketserver/server/commands.go b/socketserver/server/commands.go index 8a5eabad..1ddf863a 100644 --- a/socketserver/server/commands.go +++ b/socketserver/server/commands.go @@ -448,12 +448,12 @@ func C2SHandleBunchedCommand(conn *websocket.Conn, client *ClientInfo, msg Clien go func() { result := <-resultCh var reply ClientMessage + reply.MessageID = msg.MessageID if result.Err != nil { reply.Command = ErrorCommand reply.Arguments = result.Err.Error() } else { reply.Command = SuccessCommand - reply.MessageID = msg.MessageID reply.origArguments = result.Val.(string) reply.parseOrigArguments() } diff --git a/socketserver/server/handlecore.go b/socketserver/server/handlecore.go index 9cac001c..905dde04 100644 --- a/socketserver/server/handlecore.go +++ b/socketserver/server/handlecore.go @@ -186,7 +186,7 @@ func HTTPSayOK(w http.ResponseWriter, _ *http.Request) { // SocketUpgrader is the websocket.Upgrader currently in use. var SocketUpgrader = websocket.Upgrader{ - ReadBufferSize: 1024, + ReadBufferSize: 160, WriteBufferSize: 1024, CheckOrigin: func(r *http.Request) bool { return r.Header.Get("Origin") == "" || OriginRegexp.MatchString(r.Header.Get("Origin")) diff --git a/socketserver/server/stats.go b/socketserver/server/stats.go index b4274997..8455fa8f 100644 --- a/socketserver/server/stats.go +++ b/socketserver/server/stats.go @@ -12,6 +12,8 @@ import ( ) type StatsData struct { + updateMu sync.Mutex + StatsDataVersion int StartTime time.Time @@ -114,6 +116,9 @@ func SetBuildStamp(buildTime, buildHash string) { } func updateStatsIfNeeded() { + Statistics.updateMu.Lock() + defer Statistics.updateMu.Unlock() + if time.Now().Add(-2 * time.Second).After(Statistics.CachedStatsLastUpdate) { updatePeriodicStats() }