Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

Unreal SDK: no way to set confirmed reads on the connection (Rust SDK has with_confirmed_reads)

Offen Anfängerfreundlich
#6,328 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

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

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus clockworklabs/SpacetimeDB

Alle Issues in clockworklabs/SpacetimeDB

Ähnliche Issues

Weitere Issues zu Rust

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.