1. LiveKit 的房间管理器 (RoomManager)

1. LiveKit 的房间管理器 (RoomManager)

LiveKit Server 通过房间管理器 (RoomManager) 管理服务器上的所有房间 (Room),包括房间的创建、搜索、关闭等。

1.1 房间管理器 (RoomManager) 类的定义

房间管理器 (RoomManager) 类在源文件 pkg/service/roommanager.go 中定义,代码如下所示:

// RoomManager manages rooms and its interaction with participants.
// It's responsible for creating, deleting rooms, as well as running sessions for participants
type RoomManager struct {
    lock sync.RWMutex

    config            *config.Config
    rtcConfig         *rtc.WebRTCConfig
    serverInfo        *livekit.ServerInfo
    currentNode       routing.LocalNode
    router            routing.Router
    roomStore         ObjectStore
    telemetry         telemetry.TelemetryService
    clientConfManager clientconfiguration.ClientConfigurationManager
    agentClient       rtc.AgentClient
    egressLauncher    rtc.EgressLauncher
    versionGenerator  utils.TimedVersionGenerator
    turnAuthHandler   *TURNAuthHandler
    bus               psrpc.MessageBus

    rooms map[livekit.RoomName]*rtc.Room

    roomServers        utils.MultitonService[rpc.RoomTopic]
    participantServers utils.MultitonService[rpc.ParticipantTopic]

    iceConfigCache map[livekit.ParticipantIdentity]*iceConfigCacheEntry
}

RoomManager 用字典 map[] 管理服务器中的房间,以房间名 livekit.RoomName 作为 key 值检索管理的 Room。

    rooms map[livekit.RoomName]*rtc.Room

1.2. 创建房间管理器

房间管理器在 livekit-server 启动的时候创建,其调用流程如下:

main
startServer
service.InitializeServer
NewLocalRoomManager
  • 33
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值