From abf1be122732a3fa8eceb96b2d7509e8f20b7462 Mon Sep 17 00:00:00 2001 From: PHILIP WHITE Date: Tue, 5 Dec 2023 03:28:16 +0000 Subject: [PATCH] Update Game Instance for Authenticating Dedicated Server --- .../FirstPerson/Maps/FirstPersonMap.umap | 4 +-- .../Content/Server/BP_ServerMenu.uasset | 4 +-- CorruptedMemory/CorruptedMemory.uproject | 4 +-- .../Source/CorruptedMemory/CMGameInstance.cpp | 32 +++++++++++++------ .../Source/CorruptedMemory/CMGameInstance.h | 2 +- .../Source/CorruptedMemoryServer.Target.cs | 1 + 6 files changed, 30 insertions(+), 17 deletions(-) diff --git a/CorruptedMemory/Content/FirstPerson/Maps/FirstPersonMap.umap b/CorruptedMemory/Content/FirstPerson/Maps/FirstPersonMap.umap index 18ab88e..a84d83a 100644 --- a/CorruptedMemory/Content/FirstPerson/Maps/FirstPersonMap.umap +++ b/CorruptedMemory/Content/FirstPerson/Maps/FirstPersonMap.umap @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:50dc7643805f79735dcfd5446b36ff8ddea8adeda4b88438744192186c26f707 -size 19238 +oid sha256:67d471229c8f9c6511984ba2f8fadede38d36e8f16b0cf6cea340345f95cd7d0 +size 38952 diff --git a/CorruptedMemory/Content/Server/BP_ServerMenu.uasset b/CorruptedMemory/Content/Server/BP_ServerMenu.uasset index 6e1bcbc..808cdad 100644 --- a/CorruptedMemory/Content/Server/BP_ServerMenu.uasset +++ b/CorruptedMemory/Content/Server/BP_ServerMenu.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:302fc1fc8ab7016858e7911e7b8b876eaad654fc27f0ea57995db8c104bcf771 -size 375364 +oid sha256:cb5aee236e6d60a4de066137edba976a28adb60af604147c047fe36e21c9d40c +size 382344 diff --git a/CorruptedMemory/CorruptedMemory.uproject b/CorruptedMemory/CorruptedMemory.uproject index 7fc9217..ce22ed8 100644 --- a/CorruptedMemory/CorruptedMemory.uproject +++ b/CorruptedMemory/CorruptedMemory.uproject @@ -21,8 +21,6 @@ ], "TargetPlatforms": [ "LinuxArm64", - "Windows", - "HoloLens", - "Linux" + "Windows" ] } \ No newline at end of file diff --git a/CorruptedMemory/Source/CorruptedMemory/CMGameInstance.cpp b/CorruptedMemory/Source/CorruptedMemory/CMGameInstance.cpp index 4206c00..a6b0687 100644 --- a/CorruptedMemory/Source/CorruptedMemory/CMGameInstance.cpp +++ b/CorruptedMemory/Source/CorruptedMemory/CMGameInstance.cpp @@ -57,15 +57,29 @@ void UCMGameInstance::JoinLobby(const int Port) void UCMGameInstance::Init() { Super::Init(); - - Socket= ISocketIOClientModule::Get().NewValidNativePointer(); - - Socket->Connect("https://cm.api.philipwhite.dev:443"); - Socket->OnEvent(TEXT("Connect"), [this](const FString& Event, const TSharedPtr& Message) + Socket = ISocketIOClientModule::Get().NewValidNativePointer(); + + Socket->Connect("wss://cm.api.philipwhite.dev/"); + Socket->OnConnectedCallback = [this](const FString& SocketID, const FString& SessionID) + { + UE_LOG(LogTemp, Log, TEXT("Connected: %s %s"), *SocketID, *SessionID); + if (IsDedicatedServerInstance()) { - UE_LOG(LogTemp, Log, TEXT("Received: %s"), *USIOJConvert::ToJsonString(Message)); - }); + FParse::Value(FCommandLine::Get(), TEXT("lobbyID="), LobbyID); + FString CMServerSecret; + FParse::Value(FCommandLine::Get(), TEXT("CMServerSecret="), CMServerSecret); + const TSharedPtr AuthorityData = MakeShareable(new FJsonObject); + AuthorityData->SetStringField("lobbyID", LobbyID); + AuthorityData->SetStringField("secret", CMServerSecret); + Socket->Emit(TEXT("authority"), AuthorityData); + } + }; + + Socket->OnEvent(LobbyID + "/A", [this](const FString& Event, const TSharedPtr& Message) + { + UE_LOG(LogTemp, Log, TEXT("Received: %s"), *USIOJConvert::ToJsonString(Message)); + }); Socket->Emit(TEXT("MyEmit"), TEXT("hi")); } @@ -104,9 +118,9 @@ void UCMGameInstance::OnRequestToLoginComplete(FHttpRequestPtr Request, FHttpRes } } -void UCMGameInstance::OnRequestToRegisterComplete(FHttpRequestPtr Request, FHttpResponsePtr Response, bool bWasSuccessful) +void UCMGameInstance::OnRequestToRegisterComplete(FHttpRequestPtr Request, FHttpResponsePtr Response, bool bWasSuccessful) const { - if (bWasSuccessful) + if (Response->GetResponseCode() == 201) { OnRegisterComplete.Broadcast(true); } diff --git a/CorruptedMemory/Source/CorruptedMemory/CMGameInstance.h b/CorruptedMemory/Source/CorruptedMemory/CMGameInstance.h index 5394937..6973df7 100644 --- a/CorruptedMemory/Source/CorruptedMemory/CMGameInstance.h +++ b/CorruptedMemory/Source/CorruptedMemory/CMGameInstance.h @@ -62,7 +62,7 @@ public: private: FString LobbyAPI = "https://cm.api.philipwhite.dev/api"; void OnRequestToLoginComplete(FHttpRequestPtr Request, FHttpResponsePtr Response, bool bWasSuccessful); - void OnRequestToRegisterComplete(FHttpRequestPtr Request, FHttpResponsePtr Response, bool bWasSuccessful); + void OnRequestToRegisterComplete(FHttpRequestPtr Request, FHttpResponsePtr Response, bool bWasSuccessful) const; void OnRequestToLogoutComplete(FHttpRequestPtr Request, FHttpResponsePtr Response, bool bWasSuccessful); void OnRequestToCreateLobbyComplete(FHttpRequestPtr Request, FHttpResponsePtr Response, bool bWasSuccessful); }; diff --git a/CorruptedMemory/Source/CorruptedMemoryServer.Target.cs b/CorruptedMemory/Source/CorruptedMemoryServer.Target.cs index 04d12db..6d61bf7 100644 --- a/CorruptedMemory/Source/CorruptedMemoryServer.Target.cs +++ b/CorruptedMemory/Source/CorruptedMemoryServer.Target.cs @@ -9,6 +9,7 @@ public class CorruptedMemoryServerTarget : TargetRules { Type = TargetType.Server; DefaultBuildSettings = BuildSettingsVersion.V2; + IncludeOrderVersion = EngineIncludeOrderVersion.Unreal5_1; ExtraModuleNames.Add("CorruptedMemory"); } }