Lesson 74 - Find or Create Game Sessions HTTP Request
This commit is contained in:
@@ -3,7 +3,29 @@
|
|||||||
|
|
||||||
#include "UI/Portal/PortalManager.h"
|
#include "UI/Portal/PortalManager.h"
|
||||||
|
|
||||||
|
#include "HttpModule.h"
|
||||||
|
#include "Data/API/APIData.h"
|
||||||
|
#include "GameplayTags/DedicatedServerTags.h"
|
||||||
|
|
||||||
void UPortalManager::JoinGameSession()
|
void UPortalManager::JoinGameSession()
|
||||||
{
|
{
|
||||||
BroadcastJoinGameSessionMessage.Broadcast(TEXT("Searching for Game Session..."));
|
BroadcastJoinGameSessionMessage.Broadcast(TEXT("Searching for Game Session..."));
|
||||||
|
|
||||||
|
check(APIData);
|
||||||
|
|
||||||
|
TSharedPtr<IHttpRequest> Request = FHttpModule::Get().CreateRequest();
|
||||||
|
Request->OnProcessRequestComplete().BindUObject(this, &UPortalManager::FindOrCreateGameSession_Response);
|
||||||
|
|
||||||
|
const FString APIUrl = APIData->GetAPIEndPoint(DedicatedServersTags::GameSessionsAPI::FindOrCreateGameSession);
|
||||||
|
|
||||||
|
Request->SetURL(APIUrl);
|
||||||
|
Request->SetVerb("POST");
|
||||||
|
Request->SetHeader("Content-Type", "application/json");
|
||||||
|
Request->ProcessRequest();
|
||||||
|
}
|
||||||
|
|
||||||
|
void UPortalManager::FindOrCreateGameSession_Response(FHttpRequestPtr Request, FHttpResponsePtr Response,
|
||||||
|
bool bWasSuccessful)
|
||||||
|
{
|
||||||
|
GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, TEXT("Find or Create Game Session Response Received"));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,7 +12,9 @@ void USignInOverlay::NativeConstruct()
|
|||||||
Super::NativeConstruct();
|
Super::NativeConstruct();
|
||||||
|
|
||||||
check(PortalManagerClass);
|
check(PortalManagerClass);
|
||||||
PortalManager = NewObject<UPortalManager>(PortalManagerClass);
|
check(IsValid(JoinGameWidget));
|
||||||
|
check(IsValid(JoinGameWidget->Button_JoinGame));
|
||||||
|
PortalManager = NewObject<UPortalManager>(this, PortalManagerClass);
|
||||||
|
|
||||||
JoinGameWidget->Button_JoinGame->OnClicked.AddDynamic(this, &USignInOverlay::OnJoinGameButtonClicked);
|
JoinGameWidget->Button_JoinGame->OnClicked.AddDynamic(this, &USignInOverlay::OnJoinGameButtonClicked);
|
||||||
}
|
}
|
||||||
@@ -20,6 +22,8 @@ void USignInOverlay::NativeConstruct()
|
|||||||
void USignInOverlay::OnJoinGameButtonClicked()
|
void USignInOverlay::OnJoinGameButtonClicked()
|
||||||
{
|
{
|
||||||
check (IsValid(PortalManager));
|
check (IsValid(PortalManager));
|
||||||
|
check(IsValid(JoinGameWidget));
|
||||||
|
check(IsValid(JoinGameWidget->Button_JoinGame));
|
||||||
|
|
||||||
PortalManager->BroadcastJoinGameSessionMessage.AddDynamic(this, &USignInOverlay::UpdateJoinGameStatusMessage);
|
PortalManager->BroadcastJoinGameSessionMessage.AddDynamic(this, &USignInOverlay::UpdateJoinGameStatusMessage);
|
||||||
PortalManager->JoinGameSession();
|
PortalManager->JoinGameSession();
|
||||||
@@ -28,5 +32,6 @@ void USignInOverlay::OnJoinGameButtonClicked()
|
|||||||
|
|
||||||
void USignInOverlay::UpdateJoinGameStatusMessage(const FString& StatusMessage)
|
void USignInOverlay::UpdateJoinGameStatusMessage(const FString& StatusMessage)
|
||||||
{
|
{
|
||||||
|
check(IsValid(JoinGameWidget));
|
||||||
JoinGameWidget->SetStatusMessage(StatusMessage);
|
JoinGameWidget->SetStatusMessage(StatusMessage);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "CoreMinimal.h"
|
#include "CoreMinimal.h"
|
||||||
|
#include "Interfaces/IHttpRequest.h"
|
||||||
#include "UI/HTTP/HTTPRequestManager.h"
|
#include "UI/HTTP/HTTPRequestManager.h"
|
||||||
#include "PortalManager.generated.h"
|
#include "PortalManager.generated.h"
|
||||||
|
|
||||||
@@ -21,5 +22,9 @@ public:
|
|||||||
UPROPERTY(BlueprintAssignable)
|
UPROPERTY(BlueprintAssignable)
|
||||||
FBroadcastJoinGameSessionMessage BroadcastJoinGameSessionMessage;
|
FBroadcastJoinGameSessionMessage BroadcastJoinGameSessionMessage;
|
||||||
|
|
||||||
void JoinGameSession();
|
auto JoinGameSession() -> void;
|
||||||
|
|
||||||
|
private:
|
||||||
|
|
||||||
|
void FindOrCreateGameSession_Response(FHttpRequestPtr Request, FHttpResponsePtr Response, bool bWasSuccessful);
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user