优化结构

This commit is contained in:
Yvan
2026-08-27 22:33:43 +08:00
parent 5052835fcb
commit e407d3ac10
86 changed files with 3151 additions and 726 deletions
+10 -20
View File
@@ -176,36 +176,26 @@ func (s *Server) OnDisconnect(handler func(*melody.Session)) {
s.mu.Unlock()
}
func snapshotHandlers[T any](mu *sync.RWMutex, handlers []T) []T {
mu.RLock()
defer mu.RUnlock()
return append([]T(nil), handlers...)
}
func (s *Server) messageHandlerSnapshot() []func(*melody.Session, []byte) {
s.mu.RLock()
defer s.mu.RUnlock()
handlers := make([]func(*melody.Session, []byte), len(s.messageHandlers))
copy(handlers, s.messageHandlers)
return handlers
return snapshotHandlers(&s.mu, s.messageHandlers)
}
func (s *Server) binaryHandlerSnapshot() []func(*melody.Session, []byte) {
s.mu.RLock()
defer s.mu.RUnlock()
handlers := make([]func(*melody.Session, []byte), len(s.binaryHandlers))
copy(handlers, s.binaryHandlers)
return handlers
return snapshotHandlers(&s.mu, s.binaryHandlers)
}
func (s *Server) connectHandlerSnapshot() []func(*melody.Session) {
s.mu.RLock()
defer s.mu.RUnlock()
handlers := make([]func(*melody.Session), len(s.connectHandlers))
copy(handlers, s.connectHandlers)
return handlers
return snapshotHandlers(&s.mu, s.connectHandlers)
}
func (s *Server) disconnectHandlerSnapshot() []func(*melody.Session) {
s.mu.RLock()
defer s.mu.RUnlock()
handlers := make([]func(*melody.Session), len(s.disconnectHandlers))
copy(handlers, s.disconnectHandlers)
return handlers
return snapshotHandlers(&s.mu, s.disconnectHandlers)
}
func (s *Server) Send(session *melody.Session, message []byte) error {
if session == nil {