Unreal SDK: no way to set confirmed reads on the connection (Rust SDK has with_confirmed_reads)
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức phù hợp với người mới
- 84/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- cpp, unreal-engine
- Lĩnh vực
- game-dev, networking
Hướng nghiên cứu
Bắt đầu với UDbConnectionBuilderBase::Build trong sdks/unreal/src/SpacetimeDbSdk/Private/Connection/DbConnectionBuilder.cpp, sử dụng triển khai Rust trong sdks/rust/src/websocket.rs và db_connection.rs làm tham chiếu về hành vi. Thêm tùy chọn vào cả bộ dựng C++ và bộ dựng dành cho Blueprint, giữ nguyên việc bỏ qua khi chưa đặt và tuần tự hóa một giá trị boolean rõ ràng khi đã cấu hình. Hoàn thành nghĩa là confirmed=true hoặc confirmed=false được thêm đúng cách và được các bài kiểm thử Unreal SDK liên quan kiểm tra.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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.
- Ngôn ngữ chính
- Rust
- Star
- 25.3k
- Fork
- 1.1k
- Merge trung bình
- 2 ngày 18 giờ
- Pull request đã merge (30 ngày)
- 65
Chuẩn bị môi trường
- Có Dockerfile hoặc tệp Docker Compose
- Có mẫu pull request
- Không có hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của clockworklabs/SpacetimeDB
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
clockworklabs/SpacetimeDB#6288 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
TypeScript server `ctx.random()`: first draw of every transaction is heavily biased (signed shift in `pcg32` seeding)Có thể đã có người làm @Tyagiquamar đã nhận 4 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
clockworklabs/SpacetimeDB#6247 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
clockworklabs/SpacetimeDB#6146 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 88/100
clockworklabs/SpacetimeDB#5985 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
clockworklabs/SpacetimeDB#5943 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của clockworklabs/SpacetimeDB
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 66/100
home-assistant/installer#308 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
ProvableHQ/leo#29657 ·
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
swc-project/swc-next#1053 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
nautechsystems/nautilus_trader#5387 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
NomicFoundation/edr#1872 ·
Maintainer thường phản hồi trong vòng 2 ngày