mirror of
https://github.com/livekit/livekit.git
synced 2026-04-01 06:35:57 +00:00
* small refactor * extra line * fix room allocator test * selector fakes not used * keep decisions out of router * put nodeId logic back * fix room allocator test
21 lines
431 B
Go
21 lines
431 B
Go
package selector
|
|
|
|
import (
|
|
livekit "github.com/livekit/protocol/proto"
|
|
"github.com/thoas/go-funk"
|
|
)
|
|
|
|
// RandomSelector selects an available node at random
|
|
type RandomSelector struct {
|
|
}
|
|
|
|
func (s *RandomSelector) SelectNode(nodes []*livekit.Node) (*livekit.Node, error) {
|
|
nodes = GetAvailableNodes(nodes)
|
|
if len(nodes) == 0 {
|
|
return nil, ErrNoAvailableNodes
|
|
}
|
|
|
|
idx := funk.RandomInt(0, len(nodes))
|
|
return nodes[idx], nil
|
|
}
|