MCPcopy
hub / github.com/livekit/livekit / Start

Method Start

pkg/service/server.go:208–350  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

206}
207
208func (s *LivekitServer) Start() error {
209 if s.running.Load() {
210 return errors.New("already running")
211 }
212 s.doneChan = make(chan struct{})
213
214 if err := s.router.RegisterNode(); err != nil {
215 return err
216 }
217 defer func() {
218 if err := s.router.UnregisterNode(); err != nil {
219 logger.Errorw("could not unregister node", err)
220 }
221 }()
222
223 if err := s.router.Start(); err != nil {
224 return err
225 }
226
227 if err := s.ioService.Start(); err != nil {
228 return err
229 }
230
231 addresses := s.config.BindAddresses
232 if addresses == nil {
233 addresses = []string{""}
234 }
235
236 // ensure we could listen
237 listeners := make([]net.Listener, 0)
238 promListeners := make([]net.Listener, 0)
239 debugListeners := make([]net.Listener, 0)
240 for _, addr := range addresses {
241 ln, err := net.Listen("tcp", net.JoinHostPort(addr, strconv.Itoa(int(s.config.Port))))
242 if err != nil {
243 return err
244 }
245 listeners = append(listeners, ln)
246
247 if s.promServer != nil {
248 ln, err = net.Listen("tcp", net.JoinHostPort(addr, strconv.Itoa(int(s.config.Prometheus.Port))))
249 if err != nil {
250 return err
251 }
252 promListeners = append(promListeners, ln)
253 }
254
255 if s.debugServer != nil {
256 ln, err = net.Listen("tcp", net.JoinHostPort(addr, strconv.Itoa(int(s.config.DebugHandler.Port))))
257 if err != nil {
258 return err
259 }
260 debugListeners = append(debugListeners, ln)
261 }
262 }
263
264 values := []any{
265 "portHttp", s.config.Port,

Callers

nothing calls this directly

Calls 12

StopMethod · 0.95
backgroundWorkerMethod · 0.95
ValidMethod · 0.80
StoreMethod · 0.80
LoadMethod · 0.65
RegisterNodeMethod · 0.65
UnregisterNodeMethod · 0.65
StartMethod · 0.65
NodeIDMethod · 0.65
NodeIPMethod · 0.65
CloseMethod · 0.65
StopMethod · 0.65

Tested by

no test coverage detected