mirror of
https://github.com/livekit/livekit.git
synced 2026-03-31 04:35:40 +00:00
20 lines
402 B
Go
20 lines
402 B
Go
package routing
|
|
|
|
import (
|
|
livekit "github.com/livekit/livekit-server/proto"
|
|
"github.com/thoas/go-funk"
|
|
)
|
|
|
|
type RandomSelector struct {
|
|
}
|
|
|
|
func (s *RandomSelector) SelectNode(nodes []*livekit.Node, room *livekit.Room) (*livekit.Node, error) {
|
|
nodes = GetAvailableNodes(nodes)
|
|
if len(nodes) == 0 {
|
|
return nil, ErrNoAvailableNodes
|
|
}
|
|
|
|
idx := funk.RandomInt(0, len(nodes))
|
|
return nodes[idx], nil
|
|
}
|