Lesson 81 - Player Session Struct

This commit is contained in:
Norman Lansing
2026-04-05 20:20:35 -04:00
parent 9837e4e1d6
commit 16e4470081
5 changed files with 74 additions and 8 deletions

View File

@@ -60,5 +60,21 @@ void FDSGameSession::Dump() const
UE_LOGFMT(LogDedicatedServers, Log, " Location: {Location}", *Location);
UE_LOGFMT(LogDedicatedServers, Log, " ComputeName: {ComputeName}", *ComputeName);
UE_LOGFMT(LogDedicatedServers, Log, " PlayerGatewayStatus: {PlayerGatewayStatus}", *PlayerGatewayStatus);
}
void FDSPlayerSession::Dump() const
{
UE_LOGFMT(LogDedicatedServers, Log, "PlayerSession:");
UE_LOGFMT(LogDedicatedServers, Log, " PlayerSessionId: {PlayerSessionId}", *PlayerSessionId);
UE_LOGFMT(LogDedicatedServers, Log, " PlayerId: {PlayerId}", *PlayerId);
UE_LOGFMT(LogDedicatedServers, Log, " GameSessionId: {GameSessionId}", *GameSessionId);
UE_LOGFMT(LogDedicatedServers, Log, " FleetId: {FleetId}", *FleetId);
UE_LOGFMT(LogDedicatedServers, Log, " FleetArn: {FleetArn}", *FleetArn);
UE_LOGFMT(LogDedicatedServers, Log, " DnsName: {DnsName}", *DnsName);
UE_LOGFMT(LogDedicatedServers, Log, " IpAddress: {IpAddress}", *IpAddress);
UE_LOGFMT(LogDedicatedServers, Log, " Port: {Port}", Port);
UE_LOGFMT(LogDedicatedServers, Log, " Status: {Status}", *Status);
UE_LOGFMT(LogDedicatedServers, Log, " PlayerData: {PlayerData}", *PlayerData);
UE_LOGFMT(LogDedicatedServers, Log, " CreationTime: {CreationTime}", CreationTime);
UE_LOGFMT(LogDedicatedServers, Log, " TerminationTime: {TerminationTime}", TerminationTime);
}

View File

@@ -88,7 +88,7 @@ FString UPortalManager::GetUniquePlayerId() const
return FString();
}
void UPortalManager::HandleGameSessionStatus(const FString& Status, const FString& SessionId)
void UPortalManager::HandleGameSessionStatus(const FString& SessionId, const FString& Status)
{
if (Status.Equals(TEXT("ACTIVE")))
@@ -134,14 +134,16 @@ void UPortalManager::TryCreatePlayerSession(const FString& PlayerId, const FStri
TMap<FString, FString> Params = {
{TEXT("playerId"), PlayerId },
{TEXT("sessionId"), GameSessionId}
{TEXT("gameSessionId"), GameSessionId }
};
Request->SetContentAsString(SerializeJsonContent(Params));
const FString Content = SerializeJsonContent(Params);
Request->SetContentAsString(Content);
Request->ProcessRequest();
}
void UPortalManager::FindPlayerSession_Response(FHttpRequestPtr Request, FHttpResponsePtr Response, bool bWasSuccessful)
{
GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, TEXT("Create Player Session Response Received..."));
}

View File

@@ -108,3 +108,51 @@ struct FDSGameSession
void Dump() const;
};
USTRUCT(BlueprintType)
struct FDSPlayerSession
{
GENERATED_BODY()
/** Unix timestamp for when the player session was created */
UPROPERTY()
int64 CreationTime{};
UPROPERTY()
FString DnsName{};
UPROPERTY()
FString FleetArn{};
UPROPERTY()
FString FleetId{};
UPROPERTY()
FString GameSessionId{};
UPROPERTY()
FString IpAddress{};
UPROPERTY()
FString PlayerData{};
UPROPERTY()
FString PlayerId{};
UPROPERTY()
FString PlayerSessionId{};
/** Network port number for connecting to the game session */
UPROPERTY()
int32 Port{};
/** e.g. "RESERVED", "ACTIVE", "COMPLETED", "TIMEDOUT" */
UPROPERTY()
FString Status{};
/** Unix timestamp for when the player session was terminated (0 if still active) */
UPROPERTY()
int64 TerminationTime{};
void Dump() const;
};

View File

@@ -28,7 +28,7 @@ private:
void FindOrCreateGameSession_Response(FHttpRequestPtr Request, FHttpResponsePtr Response, bool bWasSuccessful);
FString GetUniquePlayerId() const;
void HandleGameSessionStatus(const FString& Status, const FString& SessionId);
void HandleGameSessionStatus(const FString& SessionId, const FString& Status);
void TryCreatePlayerSession(const FString& PlayerId, const FString& GameSessionId);
void FindPlayerSession_Response(FHttpRequestPtr Request, FHttpResponsePtr Response, bool bWasSuccessful);