Server: request channel info and send version info first on a new connection — joiners become audible ~4 RTT sooner
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 65/100
- Tipo de issue
- Refactorización
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- cpp
- Área
- audio-video-rtc, backend, networking
Línea de trabajo
The issue is about reordering two message creations in server.cpp's OnNewConnection to reduce latency for joining clients. Start by examining src/server.cpp lines 397-471, focusing on CreateClientIDMes, CreateVersionAndOSMes, and CreateReqChanInfoMes. Understand the stop-and-wait queue in protocol.cpp lines 519-541. Test the change by building the server and simulating joins with different RTTs to verify the improvement in audible delay.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
🤖 AI: A joining client stays inaudible until the server has its channel info: the fade-in advances only once bIsIdentified is set (#1589), and OnNewConnection requests it seventh in a stop-and-wait queue, one RTT per message.
With CreateVersionAndOSMes() and CreateReqChanInfoMes() moved right after CreateClientIDMes(), a 4.0.0beta3 joiner is heard sooner (netem loopback, tone recorded at a second client, 5 joins each):
| RTT | current | reordered |
|---|---|---|
| 20 ms | 197 ms | 119 ms |
| 100 ms | 805 ms | 395 ms |
| 200 ms | 1546 ms | 749 ms |
Moving only the channel-info request lands the sequence-counter switch inside the fade: a ~270 ms dropout on 8 of 8 joins. Moving both: 0–15 ms (current: 0–69 ms). Every client release 3.7.0–4.0.0beta3 joined (23 of 23).
It also shortens #3107's unidentified window: channel info arrives 302 ms after the first audio packet instead of 710 ms (100 ms RTT).
Does anything depend on the current order?
🤖 This message was written by AI and reviewed by @mcfnord.
- Lenguaje dominante
- C
- Estrellas
- 1.1k
- Forks
- 248
- Merge medio
- 2 d 20 h
- PR fusionados (30 d)
- 8
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de jamulussoftware/jamulus
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
jamulussoftware/jamulus#3953 · 2 comentarios ·
-
AI bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
jamulussoftware/jamulus#3901 · 4 comentarios · 1 reacción ·
-
AI
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
jamulussoftware/jamulus#3846 ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 76/100
jamulussoftware/jamulus#3958 ·
-
refactoring
jamulussoftware/jamulus#3955 · 1 comentario · 1 asignado ·
Todos los issues de jamulussoftware/jamulus
Issues similares
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
bradcypert/plum#53 ·
-
Component: GLib
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Status: Opened
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
nextbsd/nextbsd-userland#285 ·