MCPcopy Index your code
hub / github.com/github/copilot-sdk / receiveLoop

Method receiveLoop

go/copilot_request_handler.go:430–458  ·  view source on GitHub ↗
(ctx context.Context)

Source from the content-addressed store, hash-verified

428}
429
430func (f *CopilotWebSocketForwarder) receiveLoop(ctx context.Context) {
431 defer close(f.done)
432 for {
433 typ, data, err := f.conn.Read(ctx)
434 if err != nil {
435 if websocket.CloseStatus(err) == websocket.StatusNormalClosure || websocket.CloseStatus(err) == websocket.StatusGoingAway {
436 f.err = nil
437 } else if ctx.Err() != nil {
438 f.err = nil
439 } else {
440 f.err = err
441 }
442 return
443 }
444 out := CopilotWebSocketMessage{Data: data, Binary: typ == websocket.MessageBinary}
445 if f.OnSendResponseMessage != nil {
446 transformed := f.OnSendResponseMessage(out)
447 if transformed == nil {
448 continue
449 }
450 out = *transformed
451 }
452 if out.Binary {
453 _ = f.resp.SendBinary(out.Data)
454 } else {
455 _ = f.resp.SendText(out.Data)
456 }
457 }
458}
459
460func (f *CopilotWebSocketForwarder) SendRequestMessage(ctx context.Context, msg CopilotWebSocketMessage) error {
461 out := msg

Callers 1

OpenMethod · 0.95

Calls 5

ErrMethod · 0.65
SendBinaryMethod · 0.65
SendTextMethod · 0.65
closeFunction · 0.50
ReadMethod · 0.45

Tested by

no test coverage detected