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
oid sha256:302fc1fc8ab7016858e7911e7b8b876eaad654fc27f0ea57995db8c104bcf771
size 375364
oid sha256:cb5aee236e6d60a4de066137edba976a28adb60af604147c047fe36e21c9d40c
size 382344

View File

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

View File

@ -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<FJsonValue>& 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<FJsonObject> 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<FJsonValue>& 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);
}

View File

@ -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);
};

View File

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