mirror of
https://github.com/livekit/livekit.git
synced 2026-05-25 05:55:44 +00:00
decouple websocket and RTC nodes, prep for distributed
This commit is contained in:
@@ -168,7 +168,7 @@ func (c *RTCClient) Run() error {
|
||||
|
||||
c.conn.SetCloseHandler(func(code int, text string) error {
|
||||
// when closed, stop connection
|
||||
logger.GetLogger().Infow("connection closed", "code", code, "text", text)
|
||||
logger.Infow("connection closed", "code", code, "text", text)
|
||||
c.Stop()
|
||||
return nil
|
||||
})
|
||||
@@ -519,7 +519,7 @@ func (c *RTCClient) logLoop() {
|
||||
for !c.paused && c.reader != c.writer {
|
||||
val, _ := c.reader.Value.(*logEntry)
|
||||
if val != nil {
|
||||
logger.GetLogger().Infow(val.msg, val.args...)
|
||||
logger.Infow(val.msg, val.args...)
|
||||
}
|
||||
// advance reader until writer
|
||||
c.reader = c.reader.Next()
|
||||
|
||||
@@ -54,7 +54,7 @@ func (w *TrackWriter) Start() error {
|
||||
return err
|
||||
}
|
||||
|
||||
logger.GetLogger().Infow("starting track writer",
|
||||
logger.Infow("starting track writer",
|
||||
"track", w.track.ID(),
|
||||
"mime", w.mime)
|
||||
switch w.mime {
|
||||
@@ -106,13 +106,13 @@ func (w *TrackWriter) writeOgg() {
|
||||
}
|
||||
pageData, pageHeader, err := w.ogg.ParseNextPage()
|
||||
if err == io.EOF {
|
||||
logger.GetLogger().Infow("all audio samples parsed and sent")
|
||||
logger.Infow("all audio samples parsed and sent")
|
||||
w.onWriteComplete()
|
||||
return
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
logger.GetLogger().Errorw("could not parse ogg page", "err", err)
|
||||
logger.Errorw("could not parse ogg page", "err", err)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -122,7 +122,7 @@ func (w *TrackWriter) writeOgg() {
|
||||
sampleDuration := time.Duration((sampleCount/48000)*1000) * time.Millisecond
|
||||
|
||||
if err = w.track.WriteSample(media.Sample{Data: pageData, Duration: sampleDuration}); err != nil {
|
||||
logger.GetLogger().Errorw("could not write sample", "err", err)
|
||||
logger.Errorw("could not write sample", "err", err)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -140,19 +140,19 @@ func (w *TrackWriter) writeVP8() {
|
||||
}
|
||||
frame, _, err := w.ivf.ParseNextFrame()
|
||||
if err == io.EOF {
|
||||
logger.GetLogger().Infow("all video frames parsed and sent")
|
||||
logger.Infow("all video frames parsed and sent")
|
||||
w.onWriteComplete()
|
||||
return
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
logger.GetLogger().Errorw("could not parse VP8 frame", "err", err)
|
||||
logger.Errorw("could not parse VP8 frame", "err", err)
|
||||
return
|
||||
}
|
||||
|
||||
time.Sleep(sleepTime)
|
||||
if err = w.track.WriteSample(media.Sample{Data: frame, Duration: time.Second}); err != nil {
|
||||
logger.GetLogger().Errorw("could not write sample", "err", err)
|
||||
logger.Errorw("could not write sample", "err", err)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
+11
-14
@@ -31,11 +31,10 @@ var (
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "get-room",
|
||||
Name: "list-rooms",
|
||||
Before: createClient,
|
||||
Action: getRoom,
|
||||
Action: listRooms,
|
||||
Flags: []cli.Flag{
|
||||
roomFlag,
|
||||
roomHostFlag,
|
||||
apiKeyFlag,
|
||||
secretFlag,
|
||||
@@ -76,17 +75,15 @@ func createRoom(c *cli.Context) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func getRoom(c *cli.Context) error {
|
||||
ctx := contextWithAccessToken(c, &auth.VideoGrant{RoomJoin: true})
|
||||
roomId := c.String("room")
|
||||
room, err := roomClient.GetRoom(ctx, &livekit.GetRoomRequest{
|
||||
Room: roomId,
|
||||
})
|
||||
func listRooms(c *cli.Context) error {
|
||||
ctx := contextWithAccessToken(c, &auth.VideoGrant{RoomList: true})
|
||||
res, err := roomClient.ListRooms(ctx, &livekit.ListRoomsRequest{})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
PrintJSON(room)
|
||||
for _, rm := range res.Rooms {
|
||||
fmt.Printf("%s\t%s\n", rm.Sid, rm.Name)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -108,16 +105,16 @@ func contextWithAccessToken(c *cli.Context, grant *auth.VideoGrant) context.Cont
|
||||
ctx := context.Background()
|
||||
token, err := accessToken(c, grant, "")
|
||||
if err != nil {
|
||||
logger.GetLogger().Errorw("Could not get access token", "err", err)
|
||||
logger.Errorw("Could not get access token", "err", err)
|
||||
}
|
||||
if token != "" {
|
||||
header := make(http.Header)
|
||||
header.Set("Authorization", "Bearer "+token)
|
||||
if tctx, err := twirp.WithHTTPRequestHeaders(ctx, header); err == nil {
|
||||
logger.GetLogger().Debugw("requesting with token")
|
||||
logger.Debugw("requesting with token")
|
||||
ctx = tctx
|
||||
} else {
|
||||
logger.GetLogger().Errorw("Error setting Twirp auth header", "err", err)
|
||||
logger.Errorw("Error setting Twirp auth header", "err", err)
|
||||
}
|
||||
}
|
||||
return ctx
|
||||
|
||||
@@ -74,10 +74,8 @@ func joinRoom(c *cli.Context) error {
|
||||
}
|
||||
}
|
||||
|
||||
log := logger.GetLogger()
|
||||
|
||||
host := c.String("host")
|
||||
log.Infow("connecting to Websocket signal", "host", host)
|
||||
logger.Infow("connecting to Websocket signal", "host", host)
|
||||
conn, err := client.NewWebSocketConn(host, token)
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -118,7 +116,7 @@ func joinRoom(c *cli.Context) error {
|
||||
|
||||
err = handleCommand(rc)
|
||||
if err != nil {
|
||||
log.Errorw("could not handle command", "err", err)
|
||||
logger.Errorw("could not handle command", "err", err)
|
||||
}
|
||||
|
||||
rc.ResumeLogs()
|
||||
@@ -221,7 +219,7 @@ func handleSignals(rc *client.RTCClient) {
|
||||
|
||||
go func() {
|
||||
sig := <-sigChan
|
||||
logger.GetLogger().Infow("exit requested, shutting down", "signal", sig)
|
||||
logger.Infow("exit requested, shutting down", "signal", sig)
|
||||
rc.Stop()
|
||||
}()
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ var (
|
||||
}
|
||||
rtcHostFlag = &cli.StringFlag{
|
||||
Name: "host",
|
||||
Value: "ws://localhost:7881",
|
||||
Value: "ws://localhost:7880",
|
||||
}
|
||||
apiKeyFlag = &cli.StringFlag{
|
||||
Name: "api-key",
|
||||
|
||||
Reference in New Issue
Block a user