MCPcopy Index your code
hub / github.com/subtrace/subtrace / websocket

Method websocket

devtools/devtools.go:135–170  ·  view source on GitHub ↗
(w http.ResponseWriter, r *http.Request)

Source from the content-addressed store, hash-verified

133}
134
135func (s *Server) websocket(w http.ResponseWriter, r *http.Request) {
136 conn, err := websocket.Accept(w, r, &websocket.AcceptOptions{InsecureSkipVerify: true})
137 if err != nil {
138 w.Header().Set("content-type", "text/plain")
139 w.WriteHeader(http.StatusInternalServerError)
140 fmt.Fprintf(w, "failed to accept websocket: %v", err)
141 return
142 }
143 defer conn.Close(websocket.StatusNormalClosure, "")
144
145 s.add(conn)
146 defer s.remove(conn)
147
148 go func() {
149 for {
150 if _, msg, err := conn.Read(r.Context()); err != nil {
151 return
152 } else {
153 slog.Debug("received unexpected message from local websocket", "size", len(msg))
154 }
155 }
156 }()
157
158 ticker := time.NewTicker(time.Second)
159 defer ticker.Stop()
160 for {
161 select {
162 case <-r.Context().Done():
163 return
164 case <-ticker.C:
165 if err := conn.Ping(r.Context()); err != nil {
166 return
167 }
168 }
169 }
170}
171
172func (s *Server) html(w http.ResponseWriter, r *http.Request) {
173 w.Header().Set("content-type", "text/html; charset=utf-8")

Callers 1

ServeHTTPMethod · 0.95

Calls 10

addMethod · 0.95
removeMethod · 0.95
HeaderMethod · 0.80
WriteHeaderMethod · 0.80
StopMethod · 0.80
DoneMethod · 0.65
AcceptMethod · 0.45
SetMethod · 0.45
CloseMethod · 0.45
ReadMethod · 0.45

Tested by

no test coverage detected