Croupier C++ SDKCroupier C++ SDK
指南
API 参考
示例
配置
Croupier 主项目
  • Go SDK
  • Java SDK
  • JavaScript SDK
  • Python SDK
GitHub
指南
API 参考
示例
配置
Croupier 主项目
  • Go SDK
  • Java SDK
  • JavaScript SDK
  • Python SDK
GitHub
  • 入门指南

    • 入门指南
    • 安装指南
    • 快速开始
    • 构建指南
  • 核心概念

    • 架构设计
    • 虚拟对象
    • 函数注册
  • 高级主题

    • 插件系统
    • 部署指南
    • 测试指南

快速开始

本教程将带你创建第一个使用 Croupier C++ SDK 的应用程序。

前置准备

确保你已经:

  1. 安装了 Croupier Agent
  2. 完成了 SDK 的 安装

第一个程序

1. 创建项目文件

main.cpp:

#include "croupier/sdk/croupier_client.h"
#include <iostream>

using namespace croupier::sdk;

// 定义函数处理器
std::string HelloHandler(const std::string& context, const std::string& payload) {
    std::cout << "Context: " << context << std::endl;
    std::cout << "Payload: " << payload << std::endl;
    return R"({"message": "Hello from C++ SDK!"})";
}

int main() {
    // 配置客户端
    ClientConfig config;
    config.game_id = "demo-game";
    config.env = "development";
    config.agent_addr = "127.0.0.1:19090";

    // 创建客户端
    CroupierClient client(config);

    // 注册函数
    FunctionDescriptor desc;
    desc.id = "hello.world";
    desc.version = "0.1.0";
    desc.name = "Hello World";
    desc.description = "A simple hello world function";

    client.RegisterFunction(desc, HelloHandler);

    // 连接并服务
    if (client.Connect()) {
        std::cout << "Connected to agent!" << std::endl;
        client.Serve(); // 阻塞运行
    }

    return 0;
}

2. 创建 CMakeLists.txt

cmake_minimum_required(VERSION 3.20)
project(HelloCroupier)

set(CMAKE_CXX_STANDARD 17)

# 查找 Croupier SDK
find_package(croupier-sdk REQUIRED)

add_executable(hello-croupier main.cpp)
target_link_libraries(hello-croupier PRIVATE croupier-sdk::croupier-sdk)

3. 构建和运行

# 配置
cmake -B build -DCMAKE_TOOLCHAIN_FILE=/path/to/vcpkg/scripts/buildsystems/vcpkg.cmake

# 构建
cmake --build build

# 运行(确保 Agent 已启动)
./build/hello-croupier

虚拟对象示例

注册一个虚拟对象(如钱包):

#include "croupier/sdk/croupier_client.h"

// 钱包获取处理器
std::string WalletGetHandler(const std::string& context, const std::string& payload) {
    // 解析 payload 获取玩家 ID
    auto data = utils::ParseJSON(payload);
    std::string player_id = data["player_id"];

    // 返回钱包信息
    return utils::ToJSON({
        {"player_id", player_id},
        {"balance", 1000},
        {"currency", "gold"}
    });
}

// 转账处理器
std::string WalletTransferHandler(const std::string& context, const std::string& payload) {
    auto data = utils::ParseJSON(payload);
    // 执行转账逻辑...
    return R"({"success": true})";
}

int main() {
    ClientConfig config;
    config.game_id = "mmorpg-demo";
    config.env = "development";
    config.agent_addr = "127.0.0.1:19090";

    CroupierClient client(config);

    // 注册虚拟对象
    VirtualObjectDescriptor wallet_entity;
    wallet_entity.id = "wallet.entity";
    wallet_entity.version = "0.1.0";
    wallet_entity.name = "Wallet";
    wallet_entity.description = "Player wallet entity";

    // 定义操作
    wallet_entity.operations["get"] = "wallet.get";
    wallet_entity.operations["transfer"] = "wallet.transfer";

    // 注册操作处理器
    std::map<std::string, FunctionHandler> handlers;
    handlers["wallet.get"] = WalletGetHandler;
    handlers["wallet.transfer"] = WalletTransferHandler;

    client.RegisterVirtualObject(wallet_entity, handlers);

    client.Connect();
    client.Serve();

    return 0;
}

使用配置文件

创建配置文件 config.json:

{
  "game_id": "demo-game",
  "env": "development",
  "service_id": "backend-service",
  "agent_addr": "127.0.0.1:19090",
  "insecure": true,
  "timeout_seconds": 30
}

使用配置加载器:

#include "croupier/sdk/config/client_config_loader.h"

int main() {
    // 从文件加载配置
    ClientConfigLoader loader;
    ClientConfig config = loader.LoadFromFile("./config.json");

    // 验证配置
    auto errors = loader.ValidateConfig(config);
    if (!errors.empty()) {
        for (const auto& error : errors) {
            std::cerr << "Config error: " << error << std::endl;
        }
        return 1;
    }

    CroupierClient client(config);
    // ... 继续使用客户端
}

下一步

  • 构建指南 - 了解更多构建选项
  • API 参考 - 详细 API 文档
  • 示例 - 更多使用示例
在 GitHub 上编辑此页
最后更新: 2026/1/7 23:58
Prev
安装指南
Next
构建指南