Files
livekit/pkg/routing/selector/random.go
David Colburn faa870de3d Move callbacks out of messageRouter (#269)
* move callbacks out of messageRouter

* OCD

* more OCD

* fix forwarder test

* even more OCD

* maximum OCD

* package name collision, copy lock by value
2021-12-17 13:19:23 -08:00

21 lines
425 B
Go

package selector
import (
"github.com/livekit/protocol/livekit"
"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
}