SuperAPI AI 工具集

csharp-client

通用与其它

查看项目

更新于 10-15 19:50

技能介绍

用途:SpacetimeDB C#/.NET 客户端 SDK,用于构建连接 SpacetimeDB 的 C# 客户端,适用于控制台、桌面或任意 .NET 应用。

安装:dotnet add package SpacetimeDB.ClientSDK。生成的绑定会把 snake_case 名称转为 PascalCase,包括行字段(如服务端列 trip_id 在客户端行为 TripId)。

连接:通过 DbConnection.Builder() 配置,使用 WithUri、WithDatabaseName、WithToken、WithCompression 等;压缩可选 Compression.Brotli(默认)、Gzip、None。OnConnect 回调中可保存 token 并创建订阅。

自动重连与令牌刷新:自动重连需显式添加 .WithAutomaticReconnect(),初始连接失败不重试;已建立连接丢失后按指数退避加抖动重试,MinDelay 默认 1 秒、MaxDelay 默认 30 秒,低于 500 毫秒和 1 秒的下限会被提升并告警。Disconnect() 永久停止恢复。IsActive 为 false 时仍需调用 FrameTick()。OnConnect 在每次成功重连时都会运行,订阅与行回调应只注册一次。过期凭据可结合 .WithToken 与 .WithTokenProvider 使用。

事件循环(关键):必须在主循环中调用 FrameTick(),SDK 才会处理网络消息并触发回调;不要从后台线程调用,也不要从后台线程访问 conn.Db。

订阅:可用 SubscribeToAllTables()、类型化查询构建器 AddQuery,或原始 SQL 字符串 Subscribe。

行回调:conn.Db.Player.OnInsert、OnDelete、OnUpdate。

读取客户端缓存:按主键 Find、按唯一列 Find、按索引列 Filter、Iter() 遍历、Count 计数。

调用 Reducer:conn.Reducers.CreatePlayer(...) 等,返回 void,通过回调观察 Status.Committed、Status.Failed、Status.UnknownResult。

身份:OnConnect 回调提供 Identity,可比较与显示。

限制:断开连接时发起的调用立即失败,挂起的 reducer 调用返回 Status.UnknownResult,挂起的过程与一次性查询抛出 UnknownResultException,这些调用可能已执行且不会重放。其余细节资料未提供。