MCPcopy Create free account
hub / github.com/dank/rlapi / sendPing

Method sendPing

psynetrpc.go:161–192  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

159}
160
161func (p *PsyNetRPC) sendPing() {
162 pingMessage, err := p.buildMessage(map[string]string{"PsyPing": ""}, nil)
163 if err != nil {
164 p.logger.Error("failed to build ping message", slog.Any("err", err))
165 return
166 }
167
168 p.mu.Lock()
169 if !p.connected || p.wsConn == nil {
170 p.logger.Error("connection lost while preparing to ping")
171 p.mu.Unlock()
172 return
173 }
174 if err := p.wsConn.WriteMessage(websocket.TextMessage, []byte(pingMessage)); err != nil {
175 p.logger.Error("failed to send ping", slog.Any("err", err))
176 p.mu.Unlock()
177 return
178 }
179 p.mu.Unlock()
180
181 p.logger.Debug("sent ping")
182
183 select {
184 case <-p.pongChan:
185 p.logger.Debug("received pong")
186 p.schedulePing()
187 case <-time.After(pongTimeout):
188 p.logger.Error("pong timeout reached")
189 _ = p.Close()
190 return
191 }
192}
193
194func (p *PsyNetRPC) readMessages() {
195 defer func() {

Callers

nothing calls this directly

Calls 4

buildMessageMethod · 0.95
schedulePingMethod · 0.95
CloseMethod · 0.95
ErrorMethod · 0.80

Tested by

no test coverage detected