MCPcopy Create free account
hub / github.com/cloudbase/garm / clientReader

Method clientReader

websocket/client.go:166–195  ·  view source on GitHub ↗

clientReader waits for options changes from the client. The client can at any time change the log level and binary name it watches.

()

Source from the content-addressed store, hash-verified

164// clientReader waits for options changes from the client. The client can at any time
165// change the log level and binary name it watches.
166func (c *Client) clientReader() {
167 defer func() {
168 c.Stop()
169 }()
170 c.conn.SetReadLimit(maxMessageSize)
171 c.conn.SetPongHandler(func(string) error {
172 if err := c.conn.SetReadDeadline(time.Now().Add(pongWait)); err != nil {
173 return err
174 }
175 return nil
176 })
177 for {
178 mt, data, err := c.conn.ReadMessage()
179 if err != nil {
180 if IsErrorOfInterest(err) {
181 slog.ErrorContext(c.ctx, "error reading websocket message", slog.Any("error", err))
182 }
183 break
184 }
185
186 if c.messageHandler != nil {
187 if err := c.messageHandler(data); err != nil {
188 slog.ErrorContext(c.ctx, "error handling message", slog.Any("error", err))
189 }
190 }
191 if mt == websocket.CloseMessage {
192 break
193 }
194 }
195}
196
197func (c *Client) writeMessage(messageType int, message []byte) error {
198 c.writeMux.Lock()

Callers 1

StartMethod · 0.95

Calls 4

StopMethod · 0.95
AddMethod · 0.80
messageHandlerMethod · 0.80
IsErrorOfInterestFunction · 0.70

Tested by

no test coverage detected