Unreal SDK: no way to set confirmed reads on the connection (Rust SDK has with_confirmed_reads)
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Anfängerfreundlichkeit
- 84/100
- Issue-Typ
- Feature
- Klarheit
- Klar beschrieben
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- cpp, unreal-engine
- Bereich
- game-dev, networking
Rechercherichtung
Beginne mit UDbConnectionBuilderBase::Build in sdks/unreal/src/SpacetimeDbSdk/Private/Connection/DbConnectionBuilder.cpp und verwende die Rust-Implementierung in sdks/rust/src/websocket.rs und db_connection.rs als Verhaltensreferenz. Füge die Option sowohl zum C++-Builder als auch zum Blueprint-basierten Builder hinzu, wobei beim Nichtfestlegen eine Auslassung beibehalten und bei Konfiguration ein expliziter boolescher Wert serialisiert wird. Fertig bedeutet, dass confirmed=true oder confirmed=false korrekt angehängt und durch die relevanten Unreal-SDK-Tests abgedeckt wird.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
SpacetimeDB 2.12.0, Unreal SDK from sdks/unreal/src/SpacetimeDbSdk at v2.12.0, UE 5.8.3.
The Rust SDK lets the client choose the read mode explicitly: DbConnectionBuilder::with_confirmed_reads(bool) adds &confirmed=true|false to the subscribe URL (sdks/rust/src/websocket.rs, db_connection.rs). The Unreal SDK has no equivalent: UDbConnectionBuilderBase::Build (Private/Connection/DbConnectionBuilder.cpp) always builds
<uri>/v1/database/<name>/subscribe?compression=<Gzip|None>
so the mode is whatever the server default is for the protocol. With v2.bsatn.spacetimedb (which the Unreal SDK uses, Websocket.cpp) the server default is confirmed = true (client-api/src/routes/subscribe.rs, DEFAULT_CONFIRMED_READS), which is what we want, but we can't pin it from the client.
Why it matters for us: our game logic treats "reducer reply received" as "the transaction is durable" (inventory, trades, store purchases are only shown as done after the reply). If the default ever changes, or a different protocol version is negotiated, Unreal clients would silently switch to replies-before-fsync, while our Rust tools keep true explicitly.
Request: add WithConfirmedReads(bool) to UDbConnectionBuilder (and the Blueprint builder), appending &confirmed=true|false only when it was set, mirroring the Rust SDK. We can send a PR if that helps.
Workaround today: none without patching the SDK (the database name is interpolated into the path, so a query parameter can't be injected cleanly). We rely on the v2 default and check it in our load tests.
- Vorherrschende Sprache
- Rust
- Sterne
- 25.3k
- Forks
- 1.1k
- Ø Merge
- 3 T. 10 Std.
- Gemergte PRs (30 T.)
- 70
Entwicklungsumgebung
- Enthält ein Dockerfile oder eine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Kein Beitragsleitfaden
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus clockworklabs/SpacetimeDB
-
TS SDK: failed procedure calls reject with a bare string instead of an ErrorEvtl. vergeben Ein verknüpfter Pull Request ist offen oder bereits gemergt. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
clockworklabs/SpacetimeDB#6288 ·
Maintainer antworten meist innerhalb von 1 Tag
-
TypeScript server `ctx.random()`: first draw of every transaction is heavily biased (signed shift in `pcg32` seeding)Evtl. vergeben @Tyagiquamar hat das vor 8 Tagen übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
clockworklabs/SpacetimeDB#6247 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
clockworklabs/SpacetimeDB#6146 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 88/100
clockworklabs/SpacetimeDB#5985 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
clockworklabs/SpacetimeDB#5943 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in clockworklabs/SpacetimeDB
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 85/100
farion1231/cc-switch#8829 ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug ci good first issue
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 92/100
longbridge/gpui-kit#3677 ·
Maintainer antworten meist innerhalb von 1 Tag
-
E-pr-welcome
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 77/100
seanmonstar/reqwest#3121 · 2 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 68/100
ilya-zlobintsev/LACT#1235 ·
Maintainer antworten meist innerhalb von 1 Tag