create an offer for the server
()
| 474 | |
| 475 | // create an offer for the server |
| 476 | func (c *RTCClient) Run() error { |
| 477 | c.conn.SetCloseHandler(func(code int, text string) error { |
| 478 | // when closed, stop connection |
| 479 | logger.Infow("connection closed", "code", code, "text", text) |
| 480 | c.Stop() |
| 481 | return nil |
| 482 | }) |
| 483 | |
| 484 | // run the session |
| 485 | for { |
| 486 | res, err := c.ReadResponse() |
| 487 | if errors.Is(err, io.EOF) { |
| 488 | return nil |
| 489 | } else if err != nil { |
| 490 | logger.Errorw("error while reading", err) |
| 491 | return err |
| 492 | } |
| 493 | if c.signalResponseInterceptor != nil { |
| 494 | err = c.signalResponseInterceptor(res, c.handleSignalResponse) |
| 495 | } else { |
| 496 | err = c.handleSignalResponse(res) |
| 497 | } |
| 498 | if err != nil { |
| 499 | return err |
| 500 | } |
| 501 | } |
| 502 | } |
| 503 | |
| 504 | func (c *RTCClient) handleSignalResponse(res *livekit.SignalResponse) error { |
| 505 | switch msg := res.Message.(type) { |
no test coverage detected