MCPcopy
hub / github.com/olahol/melody / writePump

Method writePump

session.go:80–116  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

78}
79
80func (s *Session) writePump() {
81 ticker := time.NewTicker(s.melody.Config.PingPeriod)
82 defer ticker.Stop()
83
84loop:
85 for {
86 select {
87 case msg := <-s.output:
88 err := s.writeRaw(msg)
89
90 if err != nil {
91 s.melody.errorHandler(s, err)
92 break loop
93 }
94
95 if msg.t == websocket.CloseMessage {
96 break loop
97 }
98
99 if msg.t == websocket.TextMessage {
100 s.melody.messageSentHandler(s, msg.msg)
101 }
102
103 if msg.t == websocket.BinaryMessage {
104 s.melody.messageSentHandlerBinary(s, msg.msg)
105 }
106 case <-ticker.C:
107 s.ping()
108 case _, ok := <-s.outputDone:
109 if !ok {
110 break loop
111 }
112 }
113 }
114
115 s.close()
116}
117
118func (s *Session) readPump() {
119 s.conn.SetReadLimit(s.melody.Config.MaxMessageSize)

Callers 1

HandleRequestWithKeysMethod · 0.95

Calls 3

writeRawMethod · 0.95
pingMethod · 0.95
closeMethod · 0.95

Tested by

no test coverage detected