Skip to content

Commit

Permalink
Use envelope as value
Browse files Browse the repository at this point in the history
  • Loading branch information
olahol committed Mar 6, 2024
1 parent 4c79256 commit 3823d12
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 21 deletions.
8 changes: 4 additions & 4 deletions hub.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
}

Expand All @@ -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),
}
}

Expand Down
14 changes: 7 additions & 7 deletions melody.go
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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
Expand All @@ -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
Expand All @@ -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
}
Expand All @@ -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
}
Expand Down
4 changes: 2 additions & 2 deletions melody_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down
16 changes: 8 additions & 8 deletions session.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
}
Expand Down Expand Up @@ -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() {
Expand Down Expand Up @@ -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
}
Expand All @@ -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
}
Expand All @@ -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
}
Expand All @@ -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
}
Expand Down

0 comments on commit 3823d12

Please sign in to comment.