Update Game Instance for Authenticating Dedicated Server

This commit is contained in:
Philip W 2023-12-05 03:28:16 +00:00
parent ba788616e8
commit abf1be1227
6 changed files with 30 additions and 17 deletions

Binary file not shown.

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:302fc1fc8ab7016858e7911e7b8b876eaad654fc27f0ea57995db8c104bcf771 oid sha256:cb5aee236e6d60a4de066137edba976a28adb60af604147c047fe36e21c9d40c
size 375364 size 382344

View File

@ -21,8 +21,6 @@
], ],
"TargetPlatforms": [ "TargetPlatforms": [
"LinuxArm64", "LinuxArm64",
"Windows", "Windows"
"HoloLens",
"Linux"
] ]
} }

View File

@ -60,9 +60,23 @@ void UCMGameInstance::Init()
Socket = ISocketIOClientModule::Get().NewValidNativePointer(); Socket = ISocketIOClientModule::Get().NewValidNativePointer();
Socket->Connect("https://cm.api.philipwhite.dev:443"); 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())
{
FParse::Value(FCommandLine::Get(), TEXT("lobbyID="), LobbyID);
FString CMServerSecret;
FParse::Value(FCommandLine::Get(), TEXT("CMServerSecret="), CMServerSecret);
const TSharedPtr<FJsonObject> AuthorityData = MakeShareable(new FJsonObject);
AuthorityData->SetStringField("lobbyID", LobbyID);
AuthorityData->SetStringField("secret", CMServerSecret);
Socket->Emit(TEXT("authority"), AuthorityData);
}
};
Socket->OnEvent(TEXT("Connect"), [this](const FString& Event, const TSharedPtr<FJsonValue>& Message) Socket->OnEvent(LobbyID + "/A", [this](const FString& Event, const TSharedPtr<FJsonValue>& Message)
{ {
UE_LOG(LogTemp, Log, TEXT("Received: %s"), *USIOJConvert::ToJsonString(Message)); UE_LOG(LogTemp, Log, TEXT("Received: %s"), *USIOJConvert::ToJsonString(Message));
}); });
@ -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); OnRegisterComplete.Broadcast(true);
} }

View File

@ -62,7 +62,7 @@ public:
private: private:
FString LobbyAPI = "https://cm.api.philipwhite.dev/api"; FString LobbyAPI = "https://cm.api.philipwhite.dev/api";
void OnRequestToLoginComplete(FHttpRequestPtr Request, FHttpResponsePtr Response, bool bWasSuccessful); 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 OnRequestToLogoutComplete(FHttpRequestPtr Request, FHttpResponsePtr Response, bool bWasSuccessful);
void OnRequestToCreateLobbyComplete(FHttpRequestPtr Request, FHttpResponsePtr Response, bool bWasSuccessful); void OnRequestToCreateLobbyComplete(FHttpRequestPtr Request, FHttpResponsePtr Response, bool bWasSuccessful);
}; };

View File

@ -9,6 +9,7 @@ public class CorruptedMemoryServerTarget : TargetRules
{ {
Type = TargetType.Server; Type = TargetType.Server;
DefaultBuildSettings = BuildSettingsVersion.V2; DefaultBuildSettings = BuildSettingsVersion.V2;
IncludeOrderVersion = EngineIncludeOrderVersion.Unreal5_1;
ExtraModuleNames.Add("CorruptedMemory"); ExtraModuleNames.Add("CorruptedMemory");
} }
} }