diff --git a/Content/DedicatedServers/Portal/WBP_JoinGame.uasset b/Content/DedicatedServers/Portal/WBP_JoinGame.uasset index 1fed06a1..466d08f8 100644 Binary files a/Content/DedicatedServers/Portal/WBP_JoinGame.uasset and b/Content/DedicatedServers/Portal/WBP_JoinGame.uasset differ diff --git a/Source/DedicatedServers/Private/UI/HTTP/HTTPRequestTypes.cpp b/Source/DedicatedServers/Private/UI/HTTP/HTTPRequestTypes.cpp index 3cea3ec7..1863d1a3 100644 --- a/Source/DedicatedServers/Private/UI/HTTP/HTTPRequestTypes.cpp +++ b/Source/DedicatedServers/Private/UI/HTTP/HTTPRequestTypes.cpp @@ -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); } diff --git a/Source/DedicatedServers/Private/UI/Portal/PortalManager.cpp b/Source/DedicatedServers/Private/UI/Portal/PortalManager.cpp index 0b92f972..ebeb6977 100644 --- a/Source/DedicatedServers/Private/UI/Portal/PortalManager.cpp +++ b/Source/DedicatedServers/Private/UI/Portal/PortalManager.cpp @@ -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"))) @@ -133,15 +133,17 @@ void UPortalManager::TryCreatePlayerSession(const FString& PlayerId, const FStri Request->SetHeader("Content-Type", "application/json"); TMap Params = { - {TEXT("playerId"), PlayerId}, - {TEXT("sessionId"), GameSessionId} + {TEXT("playerId"), PlayerId }, + {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...")); } diff --git a/Source/DedicatedServers/Public/UI/HTTP/HTTPRequestTypes.h b/Source/DedicatedServers/Public/UI/HTTP/HTTPRequestTypes.h index 53441e3a..7b72d645 100644 --- a/Source/DedicatedServers/Public/UI/HTTP/HTTPRequestTypes.h +++ b/Source/DedicatedServers/Public/UI/HTTP/HTTPRequestTypes.h @@ -107,4 +107,52 @@ struct FDSGameSession FString PlayerGatewayStatus{}; void Dump() const; -}; \ No newline at end of file +}; + +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; +}; diff --git a/Source/DedicatedServers/Public/UI/Portal/PortalManager.h b/Source/DedicatedServers/Public/UI/Portal/PortalManager.h index e6c2b99c..b1694f78 100644 --- a/Source/DedicatedServers/Public/UI/Portal/PortalManager.h +++ b/Source/DedicatedServers/Public/UI/Portal/PortalManager.h @@ -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);