Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
C++ server SDK 5.x untuk GameLift Server Amazon -- Tindakan
Gunakan referensi server SDK 5.x untuk mengintegrasikan game multipemain Anda untuk hosting denganAmazon GameLift Servers. Untuk panduan tentang proses integrasi, lihatTambahkan GameLift Server Amazon ke server game Anda dengan SDK server.
catatan
Topik ini menjelaskan API Amazon GameLift Servers C++ yang dapat Anda gunakan saat membangun dengan C++ Standard Library (std). Secara khusus, dokumentasi ini berlaku untuk kode yang Anda kompilasi dengan -DDGAMELIFT_USE_STD=1 opsi.
C++ server SDK 5.x untuk GameLift Server Amazon - Tipe data
Topik
GetSdkVersion()
Mengembalikan nomor versi SDK saat ini yang dibangun ke dalam proses server.
Sintaks
Aws::GameLift::AwsStringOutcome Server::GetSdkVersion();
Nilai yang ditampilkan
Jika berhasil, ini mengembalikan versi SDK saat ini sebagai objek AwsStringOutcome. Objek yang dikembalikan menyertakan nomor versi (contoh5.0.0). Jika tidak berhasil, ini mengembalikan pesan kesalahan.
Contoh
Aws::GameLift::AwsStringOutcome SdkVersionOutcome = Aws::GameLift::Server::GetSdkVersion();
InitMetrics()
Menginisialisasi sistem metrik untuk mengumpulkan dan melaporkan data kinerja server. Untuk hasil terbaik, panggil metode ini sebelumnya InitSDK() untuk mengaktifkan pengumpulan metrik selama inisialisasi SDK.
Sintaks
Aws::GameLift::GenericOutcome InitMetrics(); Aws::GameLift::GenericOutcome InitMetrics(const Aws::GameLift::Server::MetricsParameters &metricsParameters);
Parameter
- MetricsParameters (opsional)
-
Parameter konfigurasi untuk pengumpulan metrik. Jika tidak disediakan, menggunakan nilai default yang dapat diganti oleh variabel lingkungan.
Nilai yang dikembalikan
Jika berhasil, mengembalikan GenericOutcome objek yang menunjukkan keberhasilan. Jika tidak berhasil, ini mengembalikan pesan kesalahan.
Contoh
// Initialize with default parameters (uses environment variables if available) // Defaults: localhost:8125 for StatsD, localhost:8126 for crash reporter // FlushInterval: 10000ms, MaxPacketSize: 512 bytes Aws::GameLift::GenericOutcome outcome = Aws::GameLift::Server::InitMetrics(); if (outcome.IsSuccess()) { // Metrics system initialized successfully } // Initialize with custom parameters Aws::GameLift::Server::MetricsParameters metricsParams("localhost", 8125, "crash-host", 8126, 5000, 1024); Aws::GameLift::GenericOutcome customOutcome = Aws::GameLift::Server::InitMetrics(metricsParams); if (customOutcome.IsSuccess()) { // Metrics system initialized with custom parameters }
InitCustomLogger()
Merutekan keluaran log SDK server ke callback logging kustom yang Anda berikan, sebagai pengganti file default dan pencatatan konsol. Gunakan operasi ini untuk mengintegrasikan log SDK server dengan sistem logging server game Anda sendiri. Misalnya, server game Unreal Engine dapat merutekan log SDK melalui sistem logging Unreal Engine ()UE_LOG.
Untuk hasil terbaik, panggil operasi ini sebelumnya InitSDK() sehingga panggilan balik Anda menerima diagnostik inisialisasi SDK (pengaturan koneksi, inisialisasi logger, dan InitSDK() kesalahan) sejak awal. Menelep InitSDK() on setel InitCustomLogger() ahnya juga aman. Keluaran log beralih ke panggilan balik Anda dari titik itu dan seterusnya. Pesan yang dicatat sebelum panggilan masuk ke logger default.
Anda dapat memanggil operasi ini paling banyak sekali. Panggilan berikutnya kembali ALREADY_INITIALIZED dan jangan mengubah logger yang sudah terdaftar.
Sintaks
Aws::GameLift::GenericOutcome InitCustomLogger(const Aws::GameLift::Server::CustomLoggerConfiguration &logParameters);
Parameter
- CustomLoggerConfiguration
-
Konfigurasi untuk logger khusus, termasuk fungsi panggilan balik log, pointer konteks data pengguna opsional, dan tingkat log minimum untuk dikirim. Panggilan balik tidak boleh
null; operasi menolaknullpanggilan balik dengan.BAD_REQUEST_EXCEPTION
Nilai yang dikembalikan
Jika berhasil, operasi mengembalikan GenericOutcome objek yang menunjukkan keberhasilan. Jika operasi gagal, hasilnya berisi pesan kesalahan dengan kode kesalahan, seperti BAD_REQUEST_EXCEPTION ketika panggilan balik null atau ALREADY_INITIALIZED ketika logger sudah terdaftar.
Contoh
// Implement a log callback that forwards SDK log messages to your logging system. void OnGameLiftLog(Aws::GameLift::Server::LogLevel level, const char* message, void* userData) { // Route the message to your game server's logging system. // The message pointer is valid only for the duration of this call; copy it if you // need to retain it. std::cout << message << std::endl; } // Configure and initialize the custom logger before calling InitSDK. Aws::GameLift::Server::CustomLoggerConfiguration logParameters(OnGameLiftLog, nullptr, Aws::GameLift::Server::LogLevel::Info); Aws::GameLift::GenericOutcome loggerOutcome = Aws::GameLift::Server::InitCustomLogger(logParameters); if (loggerOutcome.IsSuccess()) { // Custom logger initialized successfully }
InitSDK()
Menginisialisasi SDK. Amazon GameLift Servers Panggil metode ini saat peluncuran sebelum langkah inisialisasi lain yang terkait Amazon GameLift Servers dengan. Tindakan ini membaca parameter server dari lingkungan host untuk mengatur komunikasi antara proses server game dan Amazon GameLift Servers layanan. Ini menggunakan token idempotensi, jadi Anda mencoba kembali panggilan ini dengan aman ketika gagal.
Jika build server game akan digunakan tanpa Amazon GameLift Servers Agen ke armada Anywhere Amazon GameLift Servers atau armada kontainer, panggil InitSDK() dan tentukan satu set parameter server.
Sintaks
Server::InitSDKOutcome Server::initSdkOutcome = InitSDK();
Nilai yang ditampilkan
Mengem InitsdkOutcome balikan objek yang menunjukkan apakah proses server siap untuk dipanggilProcessReady().
Contoh
//Call InitSDK to establish a local connection with the Amazon GameLift Servers Agent to enable further communication. Aws::GameLift::Server::InitSDKOutcome initSdkOutcome = Aws::GameLift::Server::InitSDK();
InitSDK()
Menginisialisasi SDK. Amazon GameLift Servers Panggil metode ini saat peluncuran sebelum langkah inisialisasi lain yang terkait Amazon GameLift Servers dengan. Tindakan ini memerlukan satu set parameter server untuk mengatur komunikasi antara proses server game dan Amazon GameLift Servers layanan. Ini menggunakan token idempotensi, jadi Anda mencoba kembali panggilan ini dengan aman ketika gagal.
Jika build server game akan dikerahkan ke armada EC2 Amazon GameLift Servers terkelola atau ke armada Any Amazon GameLift Servers where atau armada kontainer dengan Amazon GameLift Servers Agen, hubungi InitSDK() tanpa parameter server.
Sintaks
Server::InitSDKOutcome Server::initSdkOutcome = InitSDK(serverParameters);
Parameter
- ServerParameters
-
Untuk menginisialisasi server game pada armada Any Amazon GameLift Servers where, buat
ServerParametersobjek dengan informasi berikut:-
URL yang WebSocket digunakan untuk terhubung ke server game Anda.
-
ID proses yang digunakan untuk meng-host server game Anda.
-
ID komputasi yang menghosting proses server game Anda.
-
ID Amazon GameLift Servers armada yang berisi komputasi Any Amazon GameLift Servers where Anda.
-
Token otorisasi yang dihasilkan oleh Amazon GameLift Servers operasi.
-
Nilai yang dikembalikan
Mengem InitsdkOutcome balikan objek yang menunjukkan apakah proses server siap untuk dipanggilProcessReady().
catatan
Jika panggilan ke InitSDK() gagal untuk build game yang diterapkan ke armada Anywhere, periksa ServerSdkVersion parameter yang digunakan saat membuat sumber daya build. Anda harus secara eksplisit menetapkan nilai ini ke versi SDK server yang digunakan. Nilai default untuk parameter ini adalah 4.x, yang tidak kompatibel. Untuk mengatasi masalah ini, buat build baru dan terapkan ke armada baru.
Contoh
Amazon GameLift ServersContoh di mana saja
//Define the server parameters std::string websocketUrl = "wss://us-west-1.api.amazongamelift.com"; std::string processId = "PID1234"; std::string fleetId = "arn:aws:gamelift:us-west-1:111122223333:fleet/fleet-9999ffff-88ee-77dd-66cc-5555bbbb44aa"; std::string hostId = "HardwareAnywhere"; std::string authToken = "1111aaaa-22bb-33cc-44dd-5555eeee66ff"; Aws::GameLift::Server::Model::ServerParameters serverParameters = Aws::GameLift::Server::Model::ServerParameters(webSocketUrl, authToken, fleetId, hostId, processId); //Call InitSDK to establish a local connection with the Amazon GameLift Servers Agent to enable further communication. Aws::GameLift::Server::InitSDKOutcome initSdkOutcome = Aws::GameLift::Server::InitSDK(serverParameters);
ProcessReady()
Memberi tahu Amazon GameLift Servers bahwa proses server siap untuk menyelenggarakan sesi game. Panggil metode ini setelah memanggil. InitSDK() Metode ini harus dipanggil hanya satu kali per proses.
Sintaks
GenericOutcome ProcessReady(const Aws::GameLift::Server::ProcessParameters
&processParameters);
Parameter
- processParameters
-
Sebuah objek ProcessParameters yang mengomunikasikan informasi berikut tentang proses server:
-
Nama metode callback yang diimplementasikan dalam kode server game yang dipanggil Amazon GameLift Servers layanan untuk berkomunikasi dengan proses server.
-
Nomor port yang didengarkan oleh proses server.
-
Jalur ke file khusus sesi game apa pun yang Amazon GameLift Servers ingin Anda tangkap dan simpan.
-
Nilai yang dikembalikan
Mengembalikan hasil generik yang terdiri dari keberhasilan atau kegagalan dalam sebuah pesan kesalahan.
Contoh
Contoh ini menggambarkan panggilan ProcessReady() dan mendelegasi implementasi fungsi.
// Set parameters and call ProcessReady std::string serverLog("serverOut.log"); // Example of a log file written by the game server std::vector<std::string> logPaths; logPaths.push_back(serverLog); int listenPort =9339; Aws::GameLift::Server::ProcessParameters processReadyParameter = Aws::GameLift::Server::ProcessParameters( std::bind(&Server::onStartGameSession, this, std::placeholders::_1), std::bind(&Server::onProcessTerminate, this), std::bind(&Server::OnHealthCheck, this), std::bind(&Server::OnUpdateGameSession, this), listenPort, Aws::GameLift::Server::LogParameters(logPaths) ); Aws::GameLift::GenericOutcome outcome = Aws::GameLift::Server::ProcessReady(processReadyParameter); // Implement callback functions void Server::onStartGameSession(Aws::GameLift::Model::GameSession myGameSession) { // game-specific tasks when starting a new game session, such as loading map GenericOutcome outcome = Aws::GameLift::Server::ActivateGameSession (maxPlayers); } void Server::onProcessTerminate() { // game-specific tasks required to gracefully shut down a game session, // such as notifying players, preserving game state data, and other cleanup GenericOutcome outcome = Aws::GameLift::Server::ProcessEnding(); } bool Server::onHealthCheck() { bool health; // complete health evaluation within 60 seconds and set health return health; }
ProcessReadyAsync()
Memberi tahu Amazon GameLift Servers layanan bahwa proses server siap untuk menyelenggarakan sesi game. Metode ini harus dipanggil setelah proses server siap untuk menjadi tuan rumah sesi permainan. Parameter menentukan nama fungsi panggilan balik Amazon GameLift Servers untuk dipanggil dalam keadaan tertentu. Kode server game harus menerapkan fungsi-fungsi ini.
Ini adalah panggilan asinkron. Untuk membuat panggilan sinkron, gunakan ProcessReady(). Lihat Inisialisasi proses server untuk detail selengkapnya.
Sintaks
GenericOutcomeCallable ProcessReadyAsync( const Aws::GameLift::Server::ProcessParameters &processParameters);
Parameter
- processParameters
-
Sebuah objek ProcessParameters yang mengomunikasikan informasi berikut tentang proses server:
-
Nama metode callback yang diimplementasikan dalam kode server game yang dipanggil Amazon GameLift Servers layanan untuk berkomunikasi dengan proses server.
-
Nomor port yang didengarkan oleh proses server.
-
Jalur ke file khusus sesi game apa pun yang Amazon GameLift Servers ingin Anda tangkap dan simpan.
Wajib: Ya
-
Nilai yang dikembalikan
Mengembalikan hasil generik yang terdiri dari keberhasilan atau kegagalan dalam sebuah pesan kesalahan.
Contoh
// Set parameters and call ProcessReady std::string serverLog("serverOut.log"); // This is an example of a log file written by the game server std::vector<std::string> logPaths; logPaths.push_back(serverLog); int listenPort =9339; Aws::GameLift::Server::ProcessParameters processReadyParameter = Aws::GameLift::Server::ProcessParameters(std::bind(&Server::onStartGameSession, this, std::placeholders::_1), std::bind(&Server::onProcessTerminate, this), std::bind(&Server::OnHealthCheck, this), std::bind(&Server::OnUpdateGameSession, this), listenPort, Aws::GameLift::Server::LogParameters(logPaths)); Aws::GameLift::GenericOutcomeCallable outcome = Aws::GameLift::Server::ProcessReadyAsync(processReadyParameter); // Implement callback functions void onStartGameSession(Aws::GameLift::Model::GameSession myGameSession) { // game-specific tasks when starting a new game session, such as loading map GenericOutcome outcome = Aws::GameLift::Server::ActivateGameSession (maxPlayers); } void onProcessTerminate() { // game-specific tasks required to gracefully shut down a game session, // such as notifying players, preserving game state data, and other cleanup GenericOutcome outcome = Aws::GameLift::Server::ProcessEnding(); } bool onHealthCheck() { // perform health evaluation and complete within 60 seconds return health; }
ProcessEnding()
Member Amazon GameLift Servers itahu bahwa proses server dihentikan. Panggil metode ini setelah semua tugas pembersihan lainnya (termasuk mematikan sesi permainan aktif) dan sebelum menghentikan proses. Bergantung pada hasilProcessEnding(), proses keluar dengan sukses (0) atau kesalahan (-1) dan menghasilkan peristiwa armada. Jika proses berakhir dengan kesalahan, peristiwa armada yang dihasilkan adalahSERVER_PROCESS_TERMINATED_UNHEALTHY.
Sintaks
Aws::GameLift::GenericOutcome processEndingOutcome = Aws::GameLift::Server::ProcessEnding();
Nilai yang ditampilkan
Mengembalikan hasil generik yang terdiri dari keberhasilan atau kegagalan dalam sebuah pesan kesalahan.
Contoh
Contoh ini memang ProcessEnding() gil dan Destroy() sebelum mengakhiri proses server dengan kode keluar sukses atau kesalahan.
Aws::GameLift::GenericOutcome processEndingOutcome = Aws::GameLift::Server::ProcessEnding(); Aws::GameLift::Server::Destroy(); // Exit the process with success or failure if (processEndingOutcome.IsSuccess()) { exit(0); } else { cout << "ProcessEnding() failed. Error: " << processEndingOutcome.GetError().GetErrorMessage(); exit(-1); }
ActivateGameSession()
Memberi tahu Amazon GameLift Servers bahwa proses server telah mengaktifkan sesi permainan dan sekarang siap untuk menerima koneksi pemain. Tindakan ini harus dipanggil sebagai bagian dari fungsi onStartGameSession() callback, setelah semua inisialisasi sesi game.
Sintaks
Aws::GameLift::GenericOutcome activateGameSessionOutcome = Aws::GameLift::Server::ActivateGameSession();
Nilai yang ditampilkan
Mengembalikan hasil generik yang terdiri dari keberhasilan atau kegagalan dalam sebuah pesan kesalahan.
Contoh
Contoh ini menunjukkan di ActivateGameSession() panggil sebagai bagian dari fungsi onStartGameSession() delegasi.
void onStartGameSession(Aws::GameLift::Model::GameSession myGameSession) { // game-specific tasks when starting a new game session, such as loading map GenericOutcome outcome = Aws::GameLift::Server::ActivateGameSession(); }
UpdatePlayerSessionCreationPolicy()
Memperbarui kemampuan sesi game saat ini untuk menerima sesi pemain baru. Sesi game dapat diatur untuk menerima atau menolak semua sesi pemain baru.
Sintaks
GenericOutcome UpdatePlayerSessionCreationPolicy(Aws::GameLift::Model::PlayerSessionCreationPolicy newPlayerSessionPolicy);
Parameter
- pemain CreationSessionPolicy
-
Jenis: nilai PlayerSessionCreationPolicy enum.
Wajib: Ya
Nilai yang dikembalikan
Mengembalikan hasil generik yang terdiri dari keberhasilan atau kegagalan dalam sebuah pesan kesalahan.
Contoh
Contoh ini menetapkan kebijakan bergabung sesi game saat ini untuk menerima semua pemain.
Aws::GameLift::GenericOutcome outcome = Aws::GameLift::Server::UpdatePlayerSessionCreationPolicy(Aws::GameLift::Model::PlayerSessionCreationPolicy::ACCEPT_ALL);
GetGameSessionId()
Mengambil ID sesi game yang dihosting oleh proses server aktif.
Untuk proses idle yang tidak diaktifkan dengan sesi game, panggilan mengembalikan aGameLiftError.
Sintaks
AwsStringOutcome GetGameSessionId()
Parameter
Tindakan ini tidak memiliki parameter.
Nilai yang dikembalikan
Jika berhasil, ini mengembalikan ID sesi game sebagai objek AwsStringOutcome. Jika tidak berhasil, ini mengembalikan pesan kesalahan.
Untuk proses idle yang tidak diaktifkan dengan sesi game, panggilan mengembalikan Success = True dan GameSessionId ="".
Contoh
Aws::GameLift::AwsStringOutcome sessionIdOutcome = Aws::GameLift::Server::GetGameSessionId();
GetTerminationTime()
Mengembalikan waktu yang merupakan jadwal proses server akan ditutup, jika waktu penghentian tersedia. Proses server mengambil tindakan setelah menerima onProcessTerminate() panggilan balik dariAmazon GameLift Servers. Amazon GameLift Serversmemang onProcessTerminate() gil karena alasan berikut:
-
Ketika proses server telah melaporkan kesehatan yang buruk atau belum meresponsAmazon GameLift Servers.
-
Saat mengakhiri instance selama peristiwa penurunan skala.
-
Ketika sebuah instance dihentikan karena gangguan instans spot.
Sintaks
AwsDateTimeOutcome GetTerminationTime()
Nilai yang ditampilkan
Jika berhasil, ini mengembalikan waktu penghentian sebagai objek AwsDateTimeOutcome. Nilainya adalah waktu penghentian, dinyatakan dalam tanda centang yang telah berlalu sejak0001 00:00:00. Misalnya, nilai 2020-09-13
12:26:40 -000Z waktu tanggal sama dengan tanda cent 637355968000000000 ang. Jika tidak ada waktu penghentian tersedia, pesan kesalahan ditampilkan.
Jika proses belum menerima callback ProcessParameters.OnProcessTerminate (), pesan kesalahan dikembalikan. Untuk informasi selengkapnya tentang mematikan proses server, lihatMenanggapi notifikasi shutdown proses server.
Contoh
Aws::GameLift::AwsLongOutcome TermTimeOutcome = Aws::GameLift::Server::GetTerminationTime();
AcceptPlayerSession()
Memberi tahu Amazon GameLift Servers bahwa pemain dengan ID sesi pemain yang ditentukan telah terhubung ke proses server dan perlu validasi. Amazon GameLift Serversmemverifikasi bahwa ID sesi pemain valid. Setelah sesi pemain divalidasi, Amazon GameLift Servers ubah status slot pemain dari RESERVED menjadi AKTIF.
Sintaks
GenericOutcome AcceptPlayerSession(String playerSessionId)
Parameter
- pemain SessionId
-
ID unik yang dikeluarkan Amazon GameLift Servers saat sesi pemain baru dibuat.
Nilai yang dikembalikan
Mengembalikan hasil generik yang terdiri dari keberhasilan atau kegagalan dalam sebuah pesan kesalahan.
Contoh
Contoh ini menangani permintaan koneksi yang mencakup memvalidasi dan menolak ID sesi pemain yang tidak valid.
void ReceiveConnectingPlayerSessionID (Connection& connection, const std::string& playerSessionId) { Aws::GameLift::GenericOutcome connectOutcome = Aws::GameLift::Server::AcceptPlayerSession(playerSessionId); if(connectOutcome.IsSuccess()) { connectionToSessionMap.emplace(connection, playerSessionId); connection.Accept(); } else { connection.Reject(connectOutcome.GetError().GetMessage(); } }
RemovePlayerSession()
Member Amazon GameLift Servers itahu bahwa pemain telah terputus dari proses server. Sebagai tanggapan, Amazon GameLift Servers ubah slot pemain menjadi tersedia.
Sintaks
GenericOutcome RemovePlayerSession(String playerSessionId)
Parameter
playerSessionId-
ID unik yang dikeluarkan Amazon GameLift Servers saat sesi pemain baru dibuat.
Nilai yang dikembalikan
Mengembalikan hasil generik yang terdiri dari keberhasilan atau kegagalan dalam sebuah pesan kesalahan.
Contoh
Aws::GameLift::GenericOutcome disconnectOutcome = Aws::GameLift::Server::RemovePlayerSession(playerSessionId);
DescribePlayerSessions()
Mengambil data sesi pemain yang mencakup pengaturan, metadata sesi, dan data pemain. Gunakan metode ini untuk mendapatkan informasi tentang hal berikut:
-
Sesi pemain tunggal
-
Semua sesi pemain dalam sesi permainan
-
Semua sesi pemain yang terkait dengan ID pemain tunggal
Sintaks
DescribePlayerSessionsOutcome DescribePlayerSessions(DescribePlayerSessionsRequest describePlayerSessionsRequest)
Parameter
- DescribePlayerSessionsRequest
-
Ob DescribePlayerSessionsRequest jek yang menjelaskan sesi pemain mana yang akan diambil.
Nilai yang dikembalikan
Jika berhasil, ini mengembalikan objek DescribePlayerSessionsOutcome yang berisi satu set objek sesi pemain yang sesuai dengan parameter permintaan.
Contoh
Contoh ini meminta semua sesi pemain yang terhubung secara aktif ke sesi permainan tertentu. Dengan menghilangkan NextToken dan mengatur nilai Limit menjadi 10, Amazon GameLift Servers mengembalikan 10 catatan sesi pemain pertama yang cocok dengan permintaan.
// Set request parameters Aws::GameLift::Server::Model::DescribePlayerSessionsRequest request; request.SetPlayerSessionStatusFilter(Aws::GameLift::Server::Model::PlayerSessionStatusMapper::GetNameForPlayerSessionStatus(Aws::GameLift::Server::Model::PlayerSessionStatus::Active)); request.SetLimit(10); request.SetGameSessionId("the game session ID"); // can use GetGameSessionId() // Call DescribePlayerSessions Aws::GameLift::DescribePlayerSessionsOutcome playerSessionsOutcome = Aws::GameLift::Server::DescribePlayerSessions(request);
StartMatchBackfill()
Mengirim permintaan untuk menemukan pemain baru untuk slot terbuka dalam sesi permainan yang dibuat denganFlexMatch. Untuk informasi selengkapnya, lihat FlexMatch fitur isi ulang.
Tindakan ini asinkron. Jika pemain baru dicocokkan, Amazon GameLift Servers memberikan data matchmaker yang diperbarui menggunakan fungsi callback. OnUpdateGameSession()
Proses server hanya dapat melakukan satu permintaan backfill match yang aktif dalam satu waktu. Untuk mengirim permintaan baru, panggil StopMatchBackfill() terlebih dahulu untuk membatalkan permintaan asli.
Sintaks
StartMatchBackfillOutcome StartMatchBackfill (StartMatchBackfillRequest startBackfillRequest);
Parameter
- StartMatchBackfillRequest
-
Ob StartMatchBackfillRequest jek yang mengkomunikasikan informasi berikut:
-
ID tiket untuk ditetapkan ke permintaan backfill. Informasi ini opsional; jika tidak ada ID yang diberikan, Amazon GameLift Servers akan menghasilkan satu.
-
Matchmaker untuk dikirimi permintaan. ARN konfigurasi penuh diperlukan. Nilai ini ada dalam data matchmaker sesi game.
-
ID sesi permainan untuk diisi ulang.
-
Data perjodohan yang tersedia untuk pemain sesi game saat ini.
-
Nilai yang dikembalikan
Mengembalikan StartMatchBackfillOutcome objek dengan ID tiket isi ulang yang cocok, atau kegagalan dengan pesan kesalahan.
Contoh
// Build a backfill request std::vector<Player> players; Aws::GameLift::Server::Model::StartMatchBackfillRequest startBackfillRequest; startBackfillRequest.SetTicketId("1111aaaa-22bb-33cc-44dd-5555eeee66ff"); // optional, autogenerated if not provided startBackfillRequest.SetMatchmakingConfigurationArn("arn:aws:gamelift:us-west-2:111122223333:matchmakingconfiguration/MyMatchmakerConfig"); //from the game session matchmaker data startBackfillRequest.SetGameSessionArn("the game session ARN"); // can use GetGameSessionId() startBackfillRequest.SetPlayers(players); // from the game session matchmaker data // Send backfill request Aws::GameLift::StartMatchBackfillOutcome backfillOutcome = Aws::GameLift::Server::StartMatchBackfill(startBackfillRequest); // Implement callback function for backfill void Server::OnUpdateGameSession(Aws::GameLift::Server::Model::GameSession gameSession, Aws::GameLift::Server::Model::UpdateReason updateReason, std::string backfillTicketId) { // handle status messages // perform game-specific tasks to prep for newly matched players }
StopMatchBackfill()
Membatalkan permintaan isi ulang kecocokan yang aktif. Untuk informasi selengkapnya, lihat FlexMatch fitur isi ulang.
Sintaks
GenericOutcome StopMatchBackfill (StopMatchBackfillRequest stopBackfillRequest);
Parameter
- StopMatchBackfillRequest
-
Ob StopMatchBackfillRequest jek yang mengidentifikasi tiket perjodohan untuk dibatalkan:
-
ID tiket yang ditetapkan untuk permintaan isi ulang.
-
Matchmaker tempat permintaan isi ulang dikirim.
-
Sesi permainan yang terkait dengan permintaan isi ulang.
-
Nilai yang dikembalikan
Mengembalikan hasil generik yang terdiri dari keberhasilan atau kegagalan dalam sebuah pesan kesalahan.
Contoh
// Set backfill stop request parameters Aws::GameLift::Server::Model::StopMatchBackfillRequest stopBackfillRequest; stopBackfillRequest.SetTicketId("1111aaaa-22bb-33cc-44dd-5555eeee66ff"); stopBackfillRequest.SetGameSessionArn("the game session ARN"); // can use GetGameSessionId() stopBackfillRequest.SetMatchmakingConfigurationArn("arn:aws:gamelift:us-west-2:111122223333:matchmakingconfiguration/MyMatchmakerConfig"); // from the game session matchmaker data Aws::GameLift::GenericOutcome stopBackfillOutcome = Aws::GameLift::Server::StopMatchBackfill(stopBackfillRequest);
GetComputeCertificate()
Mengambil jalur ke sertifikat TLS yang digunakan untuk mengenkripsi koneksi jaringan antara sumber daya komputasi Any Amazon GameLift Servers where Anda dan. Amazon GameLift Servers Anda dapat menggunakan jalur sertifikat saat mendaftarkan perangkat komputasi Anda ke armada Any Amazon GameLift Servers where. Untuk informasi selengkapnya, lihat RegisterCompute.
Sintaks
GetComputeCertificateOutcome Server::GetComputeCertificate()
Nilai yang ditampilkan
Mengembalikan GetComputeCertificateOutcome.
Contoh
Aws::GameLift::GetComputeCertificateOutcome certificate = Aws::GameLift::Server::GetComputeCertificate();
GetFleetRoleCredentials()
Mengambil kredentif peran IAM yang mengizinkan Amazon GameLift Servers untuk berinteraksi dengan orang lain. Layanan AWS Untuk informasi selengkapnya, lihat Hubungkan Anda GameLift Server Amazon server game yang di-host ke yang lain AWS sumber daya.
Sintaks
GetFleetRoleCredentialsOutcome GetFleetRoleCredentials(GetFleetRoleCredentialsRequest request);
Parameter
GetFleetRoleCredentialsRequest
Nilai yang dikembalikan
Mengembalikan objek GetFleetRoleCredentialsOutcome.
Contoh
// form the fleet credentials request Aws::GameLift::Server::Model::GetFleetRoleCredentialsRequest getFleetRoleCredentialsRequest; getFleetRoleCredentialsRequest.SetRoleArn("arn:aws:iam::123456789012:role/service-role/exampleGameLiftAction"); Aws::GameLift::GetFleetRoleCredentialsOutcome credentials = Aws::GameLift::Server::GetFleetRoleCredentials(getFleetRoleCredentialsRequest);
Contoh ini menunjukkan penggunaan RoleSessionName nilai opsional untuk menetapkan nama ke sesi kredenSIAL untuk tujuan audit. Jika Anda tidak memberikan nama sesi peran, nilai default "[fleet-id]-[host-id]" digunakan.
// form the fleet credentials request Aws::GameLift::Server::Model::GetFleetRoleCredentialsRequest getFleetRoleCredentialsRequest; getFleetRoleCredentialsRequest.SetRoleArn("arn:aws:iam::123456789012:role/service-role/exampleGameLiftAction"); getFleetRoleCredentialsRequest.SetRoleSessionName("MyFleetRoleSession"); Aws::GameLift::GetFleetRoleCredentialsOutcome credentials = Aws::GameLift::Server::GetFleetRoleCredentials(getFleetRoleCredentialsRequest);
ListContainersNetworkInfo()
Mengambil informasi jaringan untuk semua kontainer yang berjalan pada instans yang sama, termasuk nama, ID, alamat IP lokal, dan jenis grup kontainer masing-masing. Gunakan informasi ini untuk mengaktifkan proses server game untuk menemukan dan berkomunikasi dengan wadah lain yang berjalan pada instans yang sama.
Tindakan ini hanya didukung pada armada kontainer. Ketika dipanggil dari jenis komputasi lainnya, ia mengembalikan UNSUPPORTED_COMPUTE_TYPE_EXCEPTION kesalahan. Amazon GameLift Serversmemperoleh informasi jaringan dari server penemuan yang berjalan secara lokal pada instance.
Sintaks
ListContainersNetworkInfoOutcome ListContainersNetworkInfo()
Nilai yang ditampilkan
Mengembalikan ListContainersNetworkInfoOutcome.
Contoh
Aws::GameLift::ListContainersNetworkInfoOutcome containersNetworkInfo = Aws::GameLift::Server::ListContainersNetworkInfo();
Hancurkan ()
Membebaskan SDK server Amazon GameLift Servers game dari memori. Sebagai praktik terbaik, panggil metode ini setelah ProcessEnding() dan sebelum mengakhiri proses. Jika Anda menggunakan armada Anywhere dan Anda tidak menghentikan proses server setelah setiap sesi permainan, hubungi Destroy() dan kemudian InitSDK() inisialisasi ulang sebelum memberi tahu Amazon GameLift Servers bahwa proses siap untuk menyelenggarakan sesi permainan. ProcessReady()
Sintaks
GenericOutcome Aws::GameLift::Server::Destroy();
Parameter
Tidak ada parameter.
Nilai yang dikembalikan
Mengembalikan hasil generik yang terdiri dari keberhasilan atau kegagalan dalam sebuah pesan kesalahan.
Contoh
Aws::GameLift::GenericOutcome processEndingOutcome = Aws::GameLift::Server::ProcessEnding(); Aws::GameLift::Server::Destroy(); // Exit the process with success or failure if (processEndingOutcome.IsSuccess()) { exit(0); } else { cout << "ProcessEnding() failed. Error: " << processEndingOutcome.GetError().GetErrorMessage(); exit(-1); }