Server: request channel info and send version info first on a new connection — joiners become audible ~4 RTT sooner
まだ誰も着手していません。
評価
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 初心者へのやさしさ
- 65/100
- issue の種類
- リファクタリング
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- cpp
調査の方向性
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.
索引モデルが issue の本文から書いたものです。
説明
🤖 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.
- 主要言語
- C
- スター
- 1.1k
- フォーク
- 248
- 平均マージ
- 2日 20時間
- マージ済み PR(30日)
- 8
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
jamulussoftware/jamulus のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
jamulussoftware/jamulus#3953 · コメント 2 件 ·
-
AI bug
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
jamulussoftware/jamulus#3901 · コメント 4 件 · リアクション 1 件 ·
-
AI
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
jamulussoftware/jamulus#3846 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 76/100
jamulussoftware/jamulus#3958 ·
-
refactoring
jamulussoftware/jamulus#3955 · コメント 1 件 · 担当者 1 名 ·
jamulussoftware/jamulus の issue をすべて見る
似ている issue
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
bradcypert/plum#53 ·
-
Component: GLib
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
-
Status: Opened
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
nextbsd/nextbsd-userland#285 ·