From 3823d1271fe0aced180ba5f44940876e3c9cfdb1 Mon Sep 17 00:00:00 2001 From: Ola <1386739+olahol@users.noreply.github.com> Date: Wed, 6 Mar 2024 18:05:19 +0100 Subject: [PATCH] Use envelope as value --- hub.go | 8 ++++---- melody.go | 14 +++++++------- melody_test.go | 4 ++-- session.go | 16 ++++++++-------- 4 files changed, 21 insertions(+), 21 deletions(-) diff --git a/hub.go b/hub.go index a3b2977..31b5392 100644 --- a/hub.go +++ b/hub.go @@ -61,10 +61,10 @@ func (ss *sessionSet) all() []*Session { type hub struct { sessions sessionSet - broadcast chan *envelope + broadcast chan envelope register chan *Session unregister chan *Session - exit chan *envelope + exit chan envelope open atomic.Bool } @@ -73,10 +73,10 @@ func newHub() *hub { sessions: sessionSet{ members: make(map[*Session]struct{}), }, - broadcast: make(chan *envelope), + broadcast: make(chan envelope), register: make(chan *Session), unregister: make(chan *Session), - exit: make(chan *envelope), + exit: make(chan envelope), } } diff --git a/melody.go b/melody.go index 636dc35..673c787 100644 --- a/melody.go +++ b/melody.go @@ -161,7 +161,7 @@ func (m *Melody) HandleRequestWithKeys(w http.ResponseWriter, r *http.Request, k Request: r, Keys: keys, conn: conn, - output: make(chan *envelope, m.Config.MessageBufferSize), + output: make(chan envelope, m.Config.MessageBufferSize), outputDone: make(chan struct{}), melody: m, open: true, @@ -193,7 +193,7 @@ func (m *Melody) Broadcast(msg []byte) error { return ErrClosed } - message := &envelope{t: websocket.TextMessage, msg: msg} + message := envelope{t: websocket.TextMessage, msg: msg} m.hub.broadcast <- message return nil @@ -205,7 +205,7 @@ func (m *Melody) BroadcastFilter(msg []byte, fn func(*Session) bool) error { return ErrClosed } - message := &envelope{t: websocket.TextMessage, msg: msg, filter: fn} + message := envelope{t: websocket.TextMessage, msg: msg, filter: fn} m.hub.broadcast <- message return nil @@ -234,7 +234,7 @@ func (m *Melody) BroadcastBinary(msg []byte) error { return ErrClosed } - message := &envelope{t: websocket.BinaryMessage, msg: msg} + message := envelope{t: websocket.BinaryMessage, msg: msg} m.hub.broadcast <- message return nil @@ -246,7 +246,7 @@ func (m *Melody) BroadcastBinaryFilter(msg []byte, fn func(*Session) bool) error return ErrClosed } - message := &envelope{t: websocket.BinaryMessage, msg: msg, filter: fn} + message := envelope{t: websocket.BinaryMessage, msg: msg, filter: fn} m.hub.broadcast <- message return nil @@ -273,7 +273,7 @@ func (m *Melody) Close() error { return ErrClosed } - m.hub.exit <- &envelope{t: websocket.CloseMessage, msg: []byte{}} + m.hub.exit <- envelope{t: websocket.CloseMessage, msg: []byte{}} return nil } @@ -285,7 +285,7 @@ func (m *Melody) CloseWithMsg(msg []byte) error { return ErrClosed } - m.hub.exit <- &envelope{t: websocket.CloseMessage, msg: msg} + m.hub.exit <- envelope{t: websocket.CloseMessage, msg: msg} return nil } diff --git a/melody_test.go b/melody_test.go index 057b2e0..9098785 100644 --- a/melody_test.go +++ b/melody_test.go @@ -573,8 +573,8 @@ func TestErrSessionClosed(t *testing.T) { assert.ErrorIs(t, s.Close(), ErrSessionClosed) assert.ErrorIs(t, ws.m.BroadcastMultiple(TestMsg, []*Session{s}), ErrSessionClosed) - assert.ErrorIs(t, s.writeRaw(nil), ErrWriteClosed) - s.writeMessage(nil) + assert.ErrorIs(t, s.writeRaw(envelope{}), ErrWriteClosed) + s.writeMessage(envelope{}) } func TestErrMessageBufferFull(t *testing.T) { diff --git a/session.go b/session.go index 36de197..909dfc7 100644 --- a/session.go +++ b/session.go @@ -14,14 +14,14 @@ type Session struct { Request *http.Request Keys map[string]interface{} conn *websocket.Conn - output chan *envelope + output chan envelope outputDone chan struct{} melody *Melody open bool rwmutex *sync.RWMutex } -func (s *Session) writeMessage(message *envelope) { +func (s *Session) writeMessage(message envelope) { if s.closed() { s.melody.errorHandler(s, ErrWriteClosed) return @@ -34,7 +34,7 @@ func (s *Session) writeMessage(message *envelope) { } } -func (s *Session) writeRaw(message *envelope) error { +func (s *Session) writeRaw(message envelope) error { if s.closed() { return ErrWriteClosed } @@ -68,7 +68,7 @@ func (s *Session) close() { } func (s *Session) ping() { - s.writeRaw(&envelope{t: websocket.PingMessage, msg: []byte{}}) + s.writeRaw(envelope{t: websocket.PingMessage, msg: []byte{}}) } func (s *Session) writePump() { @@ -156,7 +156,7 @@ func (s *Session) Write(msg []byte) error { return ErrSessionClosed } - s.writeMessage(&envelope{t: websocket.TextMessage, msg: msg}) + s.writeMessage(envelope{t: websocket.TextMessage, msg: msg}) return nil } @@ -167,7 +167,7 @@ func (s *Session) WriteBinary(msg []byte) error { return ErrSessionClosed } - s.writeMessage(&envelope{t: websocket.BinaryMessage, msg: msg}) + s.writeMessage(envelope{t: websocket.BinaryMessage, msg: msg}) return nil } @@ -178,7 +178,7 @@ func (s *Session) Close() error { return ErrSessionClosed } - s.writeMessage(&envelope{t: websocket.CloseMessage, msg: []byte{}}) + s.writeMessage(envelope{t: websocket.CloseMessage, msg: []byte{}}) return nil } @@ -190,7 +190,7 @@ func (s *Session) CloseWithMsg(msg []byte) error { return ErrSessionClosed } - s.writeMessage(&envelope{t: websocket.CloseMessage, msg: msg}) + s.writeMessage(envelope{t: websocket.CloseMessage, msg: msg}) return nil }